2010-02-09 60 views
2

我正在尋找一種方法來添加屬性到python中的xml標籤。或者要創建一個新的屬性 例如,我有以下XML文件中的新標籤:如何檢索Python中xml標籤的屬性?

<types name='character' shortName='chrs'> 
.... 
... 

</types> 

,我想加一個屬性,使它看起來像這樣:

<types name='character' shortName='chrs' fullName='MayaCharacters'> 
.... 
... 
</types> 

如何我用python來做這件事嗎?順便一提。我使用python和minidom爲這個 請幫助。在此先感謝

回答

5

您可以使用相應的Node對象的attributes財產。

例如:

from xml.dom.minidom import parseString 
documentNode = parseString("<types name='character' shortName='chrs'></types>") 
typesNode = documentNode.firstChild 

# Getting an attribute 
print typesNode.attributes["name"].value # will print "character" 

# Setting an attribute 
typesNode.attributes["mynewattribute"] = u"mynewvalue" 
print documentNode.toprettyxml() 

最後print語句將輸出這個XML文檔:

<?xml version="1.0" ?> 
<types mynewattribute="mynewvalue" name="character" shortName="chrs"/> 
+0

+1我喜歡你簡化事物的方式。老兄,你應該開始寫書! – 2010-02-09 09:57:43

1

我學會了XML解析在Python從this great article。它有一個屬性部分,不能鏈接到,但只是在該頁面上搜索「屬性」,您會發現它,它包含您需要的信息。

但在短期(段從上述頁被盜):

>>> building_element.setAttributeNS("http://www.boddie.org.uk/paul/business", "business:name", "Ivory Tower") 
>>> building_element.getAttributeNS("http://www.boddie.org.uk/paul/business", "name") 
'Ivory Tower' 

你可能想跳過命名空間的處理,使代碼更清潔,除非你需要他們。