XML::Twigを使用して、ゼロから新しい XML ドキュメントを作成しています。ルート要素には、プレフィックスと名前空間宣言が必要です。すべての子もこの名前空間に属し、このプレフィックスを使用する必要があります。
出力は次のようになります。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<abc:root xmlns:abc="http://www.somehost.com/abc-data/ns/5.0.0" version="5.0.0.0">
<abc:element name="myElement">
This is my element
</abc:element>
</abc:root>
私はそれが次のように見えると思います:
my $new_twig = XML::Twig->new(map_xmlns => {'http://www.somehost.com/abc-data/ns/5.0.0' => "abc"}, pretty_print => 'indented');
my $root = XML::Twig::Elt->new('root');
$new_twig->set_encoding('UTF-8');
$new_twig->set_standalone("no");
$new_twig->set_root( $root);
my $element = XML::Twig::Elt->new('element' => {'name'=>'myElement};
$element->set_text('This is my element');
$element->paste(last_child=>$root);
# print in a file
open (TMP, "> $new_file_name");
select TMP;
$new_twig->print(\*TMP);
close TMP;
これは簡単に思えるかもしれませんが、私はまだ Perl に慣れていないので、苦労しています。ご協力いただきありがとうございます!!!