我正在处理一些xml文件。文件的模式指定只能有一种特定类型的元素(在本例中,我使用的是脚注元素)。
在脚注元素中可以有几个脚注元素,我正在尝试获取并处理脚注元素,这样我就可以遍历它来发现脚注元素。
以下是我目前的方法
def get_footnotes(element_list):
footnoteDict=od()
footnotes_element=[item for item in element_list if item.tag=='footnotes'][0]
for eachFootnote in footnotes_element.iter():
if eachFootnote.tag=='footnote':
footnoteDict[eachFootnote.values()[0]]=eachFootnote.text
return footnoteDictelement_list是遍历整个树之后与我相关的元素的列表
因此,我想知道是否有一种更简单的方法来获取脚注元素,而不是遍历元素列表。在我看来,这样做很笨拙。
footnotes_element=[item for item in element_list if item.tag=='footnotes'][0]发布于 2011-07-07 08:50:01
这样的代码应该可以完成这项工作:
from lxml import etree
xmltree = etree.fromstring(your_xml)
for footnote in xmltree.iterfind("//footnotes/footnote"):
# do something
pass如果提供一些示例XML,就更容易提供帮助。
编辑:
如果您正在处理非常大的文件,则可能需要查看iterparse。
这个问题似乎有一个很好的例子:python's lxml and iterparse method
https://stackoverflow.com/questions/6604649
复制相似问题