【问题标题】:XML parsing in Python [closed]Python中的XML解析[关闭]
【发布时间】:2009-09-03 14:24:11
【问题描述】:

我想使用 python 解析一个简单的小型 XML 文件,但是对 pyXML 的工作似乎已经停止。如果可能的话,我想使用 python 2.6。谁能推荐一个适用于 2.6 的 XML 解析器?

谢谢

【问题讨论】:

    标签: python xml parsing python-2.6


    【解决方案1】:

    如果它又小又简单,那么只需use the standard library

    from xml.dom.minidom import parse
    doc = parse("filename.xml")
    

    这将返回一个实现标准Document Object Model API的DOM树

    如果您以后需要执行架构验证或 XPath 查询等复杂的事情,那么我推荐第三方 lxml module,它是流行的 libxml2 C 库的包装器。

    【讨论】:

      【解决方案2】:

      对于我的大部分任务,我使用了 Minidom Lightweight DOM 实现,来自官方页面:

      from xml.dom.minidom import parse, parseString
      
      dom1 = parse('c:\\temp\\mydata.xml') # parse an XML file by name
      
      datasource = open('c:\\temp\\mydata.xml')
      dom2 = parse(datasource)   # parse an open file
      
      dom3 = parseString('<myxml>Some data<empty/> some more data</myxml>')
      

      【讨论】:

        【解决方案3】:

        Here也是一个很好的例子,说明如何使用minidom。

        【讨论】:

        【解决方案4】:

        lxml 会满足您的需求吗?它是我用来解析 xml 的第一个工具。

        【讨论】:

        • 另外,Python 2.5+ 集成了 etree。它实现了相当于 lxml 的一个子集。我使用 etree 进行简单的 XML 处理,当我需要 etree 没有完全涵盖的任何内容时使用 lxml。
        【解决方案5】:

        几年前,我编写了一个用于处理结构化 XML 的库。它通过做出一些限制性假设使 XML 更简单。

        您可以将 XML 用于诸如文字处理器文档之类的东西,在这种情况下,您将拥有一堆复杂的东西,其中到处都嵌入了 XML 标记;在这种情况下,我的图书馆就不好了。

        但是,如果您将 XML 用于配置文件之类的东西,我的库相当方便。您定义描述所需 XML 结构的类,一旦完成这些类,就有一种方法可以在 XML 中啜饮并解析它。实际的解析是由 xml.dom.minidom 完成的,然后我的库会提取数据并将其放入类中。

        最好的部分:您可以声明一个“集合”类型,它将是一个 Python 列表,其中包含零个或多个其他 XML 元素。这对于 Atom 或 RSS 提要(这是我设计库的最初原因)之类的东西非常有用。

        这是网址:http://home.avvanta.com/~steveha/xe.html

        如果您有任何问题,我很乐意回答。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-05
          • 2011-03-30
          • 1970-01-01
          • 1970-01-01
          • 2010-11-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多