我正在使用xml.etree.ElementTree解析XML文件。我想找到基于name属性的元素。
fnd = root.findall("./player[@name='Pqp239']")
但是,这只会找到该名称的完全匹配项。您将如何查找其名称包含名称一部分的元素?所以会是这样的
fnd = root.findall("./player[@name='rob']")
会找到所有名称包含rob的元素,如下所示:
Rob
Robert
chifforobe
您可以使用contains()
函数,但这仅在您切换到时才有效,lxml.etree
而不是xml.etree.ElementTree
仅部分/有限的XPath支持:
import lxml.etree as ET
tree = ET.parse("input.xml")
root = tree.getroot()
root.xpath("./player[contains(@name, 'rob')]")
但是请注意,要使部分匹配不区分大小写,您需要另外应用以下translate()
函数:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句