2010-02-09 57 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' 

你可能想跳过命名空间的处理,使代码更清洁,除非你需要他们。