如何(推)解析Python中的XML文件?

时间:2014-08-30 16:17:53

标签: python xml python-3.x xml-parsing

我已经看过this question,但它来自2009年 什么是在Python 3中处理XML文件的简单现代方法?

即,来自此TLD(改编自here):

<?xml version="1.0" encoding="UTF-8" ?>
<taglib>
  <tlib-version>1.0</tlib-version>
  <short-name>bar-baz</short-name>

  <tag>
  <name>present</name>
     <tag-class>condpkg.IfSimpleTag</tag-class>
  <body-content>scriptless</body-content>

  <attribute>
    <name>test</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
  </attribute>

  </tag> 

</taglib>

我想解析TLD文件(Java Server Pages标记库描述符),以获取Python中的某种结构(我还要决定该部分)。

因此,我需要一个推送解析器。但是我不会用它做更多的事情,所以我更喜欢一个简单的API(我是Python的新手)。

1 个答案:

答案 0 :(得分:0)

标准库中仍然存在

xml.etree.ElementTree

import xml.etree.ElementTree as ET

data = """your xml here"""

tree = ET.fromstring(data)
print(tree.find('tag/name').text)  # prints "present"

如果你看看标准库之外,有一个非常流行的快速lxml模块,它遵循ElementTree接口并支持Python3:

from lxml import etree as ET

data = """your xml here"""

tree = ET.fromstring(data)
print(tree.find('tag/name').text)  # prints "present"

此外,还有lxml.objectify允许您像使用Python对象一样处理XML结构。