在Perl中构建XML文件:createAttribute和addChild之间的关系

时间:2012-09-10 19:16:58

标签: xml perl

我正在学习使用XML:LibXML用于Perl中的项目,我看到了this example

目标是构建此XML文件:

<?xml version="1.0" encoding="utf-8"?>
<assets xmlns="http://bricolage.sourceforge.net/assets.xsd">
  <story id="1234" type="story">
    <name>Catch as Catch Can</name>
  </story>
</assets>

作者使用addChildstory下创建assets

my $story = $dom->createElement('story');

然后 使用addChild(与createAttribute结合使用)为story指定属性

$story->addChild( $dom->createAttribute( id => 1234));

查看上面的XML示例(不太了解XML),id="1234"不是故事,而是它的属性,所以为什么我们在最后一行使用 addChild

3 个答案:

答案 0 :(得分:3)

属性是一种孩子。

答案 1 :(得分:2)

通过调用createAttributecreateElement,您可以创建新的节点。通过调用addChild,您可以将此类节点附加到其父节点中。 XML中有几种类型的节点:元素,属性,还有文本,注释或处理指令。

答案 2 :(得分:1)

由于$storyXML::LibXML::Element,您可能会发现使用setAttribute方法更为自然:

my $store = $dom->createElement('story');
$store->setAttribute(id => '1234');

这是您正在执行的较长createAttributeaddChild代码的简写。