untangle
untangle 是一个简洁的用于解析 XML 文档的库。输入一个 XML 文档后,untangle 将文档的结构映射成结点和属性,并返回一个 Python 对象。
形如以下的 XML 文件:
<?xmlversion="1.0"?> <root> <childname="child1"> </root>
可以使用以下的方法进行加载:
importuntangle obj=untangle.parse('path/to/file.xml')
加载完成后,你可以运行以下代码获取到 child 标签的 name 属性值:
obj.root.child['name']
untangle 同时支持使用字符串的形式和 URL 的形式加载 XML 文档。
xmltodict
xmltodict 是另一个简洁的库,它可以让开发者能够像操作 JSON 一样操作 XML 文档。
形如以下的 XML 文档:
<mydocumenthas="anattribute"> <and> <many>elements</many> <many>moreelements</many> </and> <plusa="complex"> elementaswell </plus> </mydocument>
可以使用如下方法加载,从而得到一个 Python 的 dict 对象:
importxmltodict withopen('path/to/file.xml')asfd: doc=xmltodict.parse(fd.read())
随后你可以根据以下的方法访问文档的元素、属性和属性值:
doc['mydocument']['@has']#==u'anattribute' doc['mydocument']['and']['many']#==[u'elements',u'moreelements'] doc['mydocument']['plus']['@a']#==u'complex' doc['mydocument']['plus']['#text']#==u'elementaswell'
xmltodict 中的 unparse 函数可以根据字典返回一个 XML 文档。同时, xmltodict 支持流式操作以处理不适宜加载到内存的文件,并且支持命名空间。