【发布时间】:2013-07-29 08:12:14
【问题描述】:
我正在尝试使用 XML::Simple 向现有 XML 添加属性。
<arbre>
<branche name="courbe" >
<description>
<![CDATA[une belle branche]]>
</description>
<feuilles>
<fleur color="blue" order="1" />
<fleur color="white" order="2" />
<fleur color="yellow" order="3" />
</feuilles>
</branche>
<branche name="droite" >
<description>
<![CDATA[une branche commune]]>
</description>
<feuilles>
<fleur color="purple" order="1" />
<fleur color="green" order="2" />
</feuilles>
</branche>
</arbre>
我正在尝试转变为:
<arbre>
<branche name="courbe" type="conifere">
<description>
<![CDATA[une belle branche]]>
</description>
<feuilles>
<fleur color="blue" order="1" />
<fleur color="white" order="2" />
<fleur color="yellow" order="3" />
</feuilles>
</branche>
<branche name="droite" type="resineux">
<description>
<![CDATA[une branche commune]]>
</description>
<feuilles>
<fleur color="purple" order="1" />
<fleur color="green" order="2" />
</feuilles>
</branche>
</arbre>
注意分支标签中的 type 属性。
到目前为止,我有以下内容:
#!/usr/bin/env perl -w
use strict;
use XML::Simple;
use Data::Dumper;
my $funclist = XML::Simple->new();
my $arbres = $funclist->XMLin("test.xml");
print Dumper($arbres);
exit 0;
根据我从文档中了解到的 $arbres 是一个哈希,我必须在每个分支键中插入类型属性键和值。
除了我不知道在哪里以及如何($arbres{something} = "conifere" ?)。
谢谢
【问题讨论】:
-
XML::Simple 通常远非简单易用,并且它自己的文档说 “不鼓励在新代码中使用此模块。其他模块可用,它们提供更直接和一致接口。特别是,强烈推荐 XML::LibXML。这个模块的主要问题是大量的选项和这些选项交互的任意方式 - 通常会产生意想不到的结果。"
标签: perl xml-parsing