2012-09-10 29 views
5

我正在學習如何在Perl中使用XML:LibXML項目,並且我看到了this example在Perl中構建XML文件:createAttribute和addChild之間的關係

的目標是建立這個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創建storyassets

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

然後他使用addChild(結合createAttribute )爲story指定屬性

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

上面的XML例子看(不知道很多關於XML),id="1234"不是孩子故事的,而是它的一個屬性,所以爲什麼我們使用的addChild在這最後線?

回答

2

致電createAttributecreateElement,您將創建一個新的節點。通過調用addChild,將這樣一個節點附加到其父節點中。 XML中有幾種類型的節點:元素,屬性,還有文本,註釋或處理指令。

3

屬性是一種類型的孩子。

+0

+1這是一個比@choroba不太完整的答案,但我認爲這是最直觀地回答我的問題的答案。 –

+0

我同意你的意見。如果這是你的想法,那麼你應該接受這個答案 – Borodin

+0

無後顧之憂。另一個答案是好的。 – stu42j

1

因爲,$storyXML::LibXML::Element,你可能會發現它更自然的使用方法setAttribute

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

這是較長createAttributeaddChild代碼你正在做速記。

相關問題