在Python中获取XML文档的一部分
我有一些XML文件,它们符合一个DTD(文档类型定义)。
<!ELEMENT root (node, notinteresting>
<!ELEMENT node (node*)>
<!ELEMENT notinteresting (#PCDATA)>
我想从这些文件中获取最顶层的节点(在XPath中表示为/root/node
),以及它下面的所有内容,同时忽略掉notinteresting
的部分。我该如何用几行Python代码来实现这个呢?速度和内存使用不是问题。我希望能得到一些可以用print
输出的结果。
2 个回答
0
3
你可以使用 elementtree API,根据你使用的版本,导入的方式可能会稍微不同。你需要的版本是大于等于 python 2.7。
from xml.etree.ElementTree import ElementTree
tree = ElementTree()
tree.parse("yourdoc.xml")
roottree = tree.getroot()
这样你就可以做一些事情,比如。
for c in roottree.getchildren():
注意,如果你的输入只有一个字符串,除了使用 parse,你还可以用 fromstring()。
更新:如果 "root" 是 XML 文件的根元素,你也可以使用。
roottree = tree.find('root')