首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何才能比我正在做的事情更干净地从列表中获得特定类型的唯一元素呢?

我如何才能比我正在做的事情更干净地从列表中获得特定类型的唯一元素呢?
EN

Stack Overflow用户
提问于 2011-07-07 08:43:28
回答 1查看 101关注 0票数 0

我正在处理一些xml文件。文件的模式指定只能有一种特定类型的元素(在本例中,我使用的是脚注元素)。

在脚注元素中可以有几个脚注元素,我正在尝试获取并处理脚注元素,这样我就可以遍历它来发现脚注元素。

以下是我目前的方法

代码语言:javascript
复制
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 footnoteDict

element_list是遍历整个树之后与我相关的元素的列表

因此,我想知道是否有一种更简单的方法来获取脚注元素,而不是遍历元素列表。在我看来,这样做很笨拙。

代码语言:javascript
复制
footnotes_element=[item for item in element_list if item.tag=='footnotes'][0]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-07 08:50:01

这样的代码应该可以完成这项工作:

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6604649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档