XML::Generator
XMLファイルを生成する。
タグや属性値に日本語を使用する時は、UTF8文字列(use utf8 で作成した文字列)を使わないと正しく動かず、使い勝手は悪い。
use XML::Generator;
パッケージをロードする。
my $gene = XML::Generator->new(parameter);
主なパラメータ:
:pretty[=N] :
下記のパラメータ組合せと等価
escape => 'always',
conformance =>
'strict',
pretty => N
namespace : XMLネームスペースを指定
namespace => [HTML => "http://www.w3.org/TR/REC-html40"]
escape : XML属性値に使用できない文字(< > & など)のエスケープ指定
escape => 'always' |
'unescaped'
pretty : XMLをテキスト表示(print)した時のインデント文字数
pretty => 4
pretty => '\t'
conformance : XML文法の厳格さ
conformance =>
'strict'
empty : 属性が空文字列のタグの表記方法
empty => 'self' | 'compact' | 'close' | 'ignore' | 'args'
self - <tag /> (default)
compact -
<tag/>
close - <tag></tag>
$xmldb .= $gene->xmlcmnt('コメント文字列');
XMLコメント <!-- コメント文字列 -->
を生成する。タグの後ろに改行は入らない。
$xmldb .= $gene->xmldecl;
XML declaration <?xml?>タグを生成する。
XML生成の例
use XML::Generator;
use utf8;
my $gen = XML::Generator->new(pretty => 4,
conformance => 'strict');
my $xmldb = $gen->xmldecl;
$xmldb .= $gen->xmlcmnt('これはコメントです');
$xmldb .= $gen->query({id => '0001'},
$gen->keyword('テスト'),
$gen->result("1行目\n2行目")
);
print "$xmldb\n";
-----
<?xml version="1.0" standalone="yes"?>
<!-- これはコメントです --><query id="0001">
<keyword>テスト</keyword>
<result>1行目
2行目</result>
</query>