如何使用Perl的XML :: Simple生成XML?

时间:2009-06-25 09:17:21

标签: xml perl xml-simple

我只是想创建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>

我怎样才能做到这一点?

2 个答案:

答案 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编码的文档)。