我正在学习使用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>
作者使用addChild
在story
下创建assets
:
my $story = $dom->createElement('story');
然后 使用addChild
(与createAttribute
结合使用)为story
指定属性:
$story->addChild( $dom->createAttribute( id => 1234));
查看上面的XML示例(不太了解XML),id="1234"
不是故事的子,而是它的属性,所以为什么我们在最后一行使用 addChild ?
答案 0 :(得分:3)
属性是一种孩子。
答案 1 :(得分:2)
通过调用createAttribute
或createElement
,您可以创建新的节点。通过调用addChild
,您可以将此类节点附加到其父节点中。 XML中有几种类型的节点:元素,属性,还有文本,注释或处理指令。
答案 2 :(得分:1)
由于$story
是XML::LibXML::Element,您可能会发现使用setAttribute
方法更为自然:
my $store = $dom->createElement('story');
$store->setAttribute(id => '1234');
这是您正在执行的较长createAttribute
和addChild
代码的简写。