• 技术文章 >Python技术 >Python基础教程

    如何理解XML解析库?

    silencementsilencement2019-07-17 09:47:06原创2499

    untangle

    untangle 是一个简洁的用于解析 XML 文档的库。输入一个 XML 文档后,untangle 将文档的结构映射成结点和属性,并返回一个 Python 对象。

    形如以下的 XML 文件:

    <?xml version="1.0"?>
    <root>
        <child name="child1">
    </root>

    可以使用以下的方法进行加载:

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

    加载完成后,你可以运行以下代码获取到 child 标签的 name 属性值:

    obj.root.child['name']

    untangle 同时支持使用字符串的形式和 URL 的形式加载 XML 文档。

    xmltodict

    xmltodict 是另一个简洁的库,它可以让开发者能够像操作 JSON 一样操作 XML 文档。

    形如以下的 XML 文档:

    <mydocument has="an attribute">
      <and>
        <many>elements</many>
        <many>more elements</many>
      </and>
      <plus a="complex">
        element as well
      </plus>
    </mydocument>

    可以使用如下方法加载,从而得到一个 Python 的 dict 对象:

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

    随后你可以根据以下的方法访问文档的元素、属性和属性值:

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

    xmltodict 中的 unparse 函数可以根据字典返回一个 XML 文档。同时, xmltodict 支持流式操作以处理不适宜加载到内存的文件,并且支持命名空间。

    专题推荐:xml
    上一篇:分分钟搞定JSON解析 下一篇:学习Python类型和对象,看这篇文章足矣!

    相关文章推荐

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网