[英]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.