1

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

我怎样才能做到这一点?

4

2 回答 2

4

XMLin 接受 XML 并将其转换为 Perl 数据结构。

XMLout 采用 Perl 数据结构并将其转换为 XML。

您正在尝试将 Perl 数据结构提供给 XMLin 并将结果提供给 XMLout。

您是否考虑过阅读文档


更新:文档(是的,我们知道这很无聊)提供了很多可以传递给XML::Simple::new(). 其中之一是NoAttr => 1。您可能想检查一下,但看看其他的(其中一些被标记为“重要”)不会受到伤害。

于 2009-06-25T09:23:56.680 回答
2

您正在反向使用它。 XMLin是一个 XML 解码器(接受一个 XML 编码的文档,返回 Perl 结构);XMLout是一个 XML 编码器(采用 Perl 结构,返回一个 XML 编码的文档)。

于 2009-06-25T09:22:41.347 回答