我只是想创建XML
use XML::Simple;
my %element = ( "a" => "10" ,
"b" => "20" ,);
my $xs = new XML::Simple();
my $ref = $xs->XMLin(%element);
my $xml = $xs->XMLout($ref);
print $xml;
这段代码有什么问题? (这已得到解决)
use XML::Simple;
my %element = ( "a" => "10" ,
"b" => "20" ,);
my $xs = new XML::Simple();
my $xml = $xs->XMLout(\%element);
print $xml;
这会产生以下输出:
<opt a="10" b="20" />
但我真正想要的是:
<a> 10 </a>
<b> 20 </b>
我怎样才能做到这一点?
答案 0 :(得分:4)
XMLin接受XML并将其转换为Perl数据结构。
XMLout采用Perl数据strcuture并将其转换为XML。
您正在尝试将Perl数据结构提供给XMLin,并将结果提供给XMLout。
您是否考虑过阅读documentation?
更新:文档(是的,我们知道它很无聊)提供了很多可以传递给XML::Simple::new()
的选项。其中一个是NoAttr => 1
。你可能想要check that one out,但看看其他的(其中一些被标记为“重要”)不会受到伤害。
答案 1 :(得分:2)
你正在向后使用它。 XMLin
是一个XML解码器(采用XML编码的文档,返回Perl结构); XMLout
是一个XML编码器(采用Perl结构,返回XML编码的文档)。