在Python中搜索XML内容

时间:2016-04-27 22:08:24

标签: python xml xml-parsing

我有以下XML文件:

some help of StackOverflow,我设法完成了我打算做的一些事情。现在,我想在我的脚本中添加一个搜索功能,并单独处理该子树。例如,我问用户 - 什么ID?他进入AL2012-2015-088。在一个巨大的XML文件中递归搜索此ID,脚本应该找到此ID并打印它拥有的元素。

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

2 个答案:

答案 0 :(得分:1)

如果你切换到lxml.etree,你就可以使用XPath表达式的全部功能(你也可以大大提高速度)。

以下是一个示例 - 使用所需的update找到id元素并打印出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

答案 1 :(得分:0)

我相信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...