繁体   English   中英

在 Python 中搜索 XML 内容

[英]Search XML content in Python

我有以下 XML 文件:

StackOverflow 的帮助下,我设法实现了我计划做的一些事情。 现在,我想在我的脚本中添加一个搜索功能并单独处理该子树。 比如我问用户——什么ID? 他进入AL2012-2015-088 在一个巨大的 XML 文件中递归搜索这个 ID,脚本应该找到这个 ID 并打印它的元素。

我使用了content.find("AL2012-2015-088") ,但它不起作用!

如果您切换到lxml.etree ,您将能够使用 XPath 表达式的全部功能(您还将显着加快速度)。

这是一个示例 - 使用所需的id定位update元素并打印出title

from lxml import etree as ET

id_that_user_enters = "AL2012-2015-088"
tree = ET.parse("example.xml")

update = tree.xpath("//update[id = '%s']" % id_that_user_enters)[0]
print(update.findtext("title"))

印刷:

Amazon Linux 2012.03 - AL2012-2015-088: medium priority package update for gnutls

我相信 find 命令旨在查找标签而不是标签中的文本,因此您应该在id查找。 我不确定您需要从 XML 获取哪些信息,但这里有一个获取标题的示例。

import xml.etree.ElementTree as elt
content = elt.parse('example.xml').getroot()

def get_id_info(inputID):
    for child in content:
        if child.find('id').text == inputID:
            print child.find('title').text

get_id_info('AL2012-2014-001')

Amazon Linux 2012.03 - AL2012-2014-001...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM