让我们说我有一个包含多个子节点的xml文件,我想迭代直到其中一个分支结束。
<bookstore>
<classical>This classiccal books</classical>
<date>2017-05-31</date>
<schedule>
<type>Blues</type>
<region>
<name>Alaska</name>
<transaction>
<transactionNo>455</transactionNo>
...
</schedule>
<schedule>
</schedule>
<anotherTag>
</anotherTag>
...
我希望迭代xml树,每次第一次输入分支计划时都要注意,然后在退出分支计划时也要注意。
如何在python中使用xml树解析器?
如果我搜索所有后代,我第一次进入时会知道,但是当我退出时却没有?我可以修改下面的代码,以便在离开分支计划时知道吗?
import xml.etree.ElementTree as ET
from lxml import etree
tree = ET.parse(xml_data)
for elem in tree.iter():
print elem.tag, elem.attrib
答案 0 :(得分:0)
您可以a query获取所需的元素,然后单独循环遍历它们,而不是遍历所有内容:
import xml.etree.ElementTree as ET
xml_data = '''
<bookstore>
<schedule><type>Foo</type></schedule>
<schedule><type>Bar</type></schedule>
<schedule><type>Baz</type></schedule>
</bookstore>
'''
tree = ET.fromstring(xml_data)
for schedule in tree.findall("schedule"):
print schedule.find("type").text