• XML解析
    • untangle
    • xmltodict

    XML解析

    ../_images/33888714601_a1f7d020a2_k_d.jpg

    untangle

    untangle 库可以将XML文档映射为一个Python对象,该对象于其结构中包含了原文档的节点与属性信息。

    作为例子,一个像这样的XML文件:

    1. <?xml version="1.0"?>
    2. <root>
    3. <child name="child1">
    4. </root>

    可以被这样载入:

    1. import untangle
    2. obj = untangle.parse('path/to/file.xml')

    然后您可以像这样获取child元素名称:

    1. obj.root.child['name']

    untangle也支持从字符串或URL中载入XML。

    xmltodict

    xmltodict 是另一个简易的库,它致力于将XML变得像JSON。

    对于一个像这样的XML文件:

    1. <mydocument has="an attribute">
    2. <and>
    3. <many>elements</many>
    4. <many>more elements</many>
    5. </and>
    6. <plus a="complex">
    7. element as well
    8. </plus>
    9. </mydocument>

    可以装载进一个Python字典里,像这样:

    1. import xmltodict
    2.  
    3. with open('path/to/file.xml') as fd:
    4. doc = xmltodict.parse(fd.read())

    您可以访问元素,属性以及值,像这样:

    1. doc['mydocument']['@has'] # == u'an attribute'
    2. doc['mydocument']['and']['many'] # == [u'elements', u'more elements']
    3. doc['mydocument']['plus']['@a'] # == u'complex'
    4. doc['mydocument']['plus']['#text'] # == u'element as well'

    xmltodict 也有unparse函数让您可以转回XML。该函数有一个streaming模式适合用来处理不能放入内存的文件,它还支持命名空间。

    原文: http://pythonguidecn.readthedocs.io/zh/latest/scenarios/xml.html