如何在Python中获取XML标签的属性?
我想知道怎么在Python中给XML标签添加属性,或者创建一个带有新属性的新标签。比如,我有一个这样的XML文件:
<types name='character' shortName='chrs'>
....
...
</types>
我想给它添加一个属性,让它看起来像这样:
<types name='character' shortName='chrs' fullName='MayaCharacters'>
....
...
</types>
请问我该怎么用Python做到这一点呢?顺便说一下,我是用Python和minidom来处理这个的。请帮帮我,谢谢!
3 个回答
0
看起来你只需要对解析后的DOM对象调用一下 setAttribute
方法就可以了。
http://developer.taboca.com/cases/en/creating_a_new_xml_document_with_python/
1
我在这篇很棒的文章中学会了如何在Python中解析XML,链接在这里:这篇文章。文章里有一个关于属性的部分,虽然不能直接链接,但你可以在页面上搜索“Attributes”,就能找到你需要的信息。
简单来说(摘自那篇文章):
>>> 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'
如果你不需要处理命名空间,建议跳过这部分,这样代码会更简洁。
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"/>