Python xml.etree.ElementTree findall
我正在使用XML.etree.ElementTree解析XML。我想根据name属性查找元素Python xml.etree.ElementTree findall,python,xml,python-3.x,xml-parsing,Python,Xml,Python 3.x,Xml Parsing,我正在使用XML.etree.ElementTree解析XML。我想根据name属性查找元素 fnd = root.findall("./player[@name='Pqp239']") 但是,这只会找到名称的精确匹配项。如何查找名称包含名称一部分的元素?所以应该是这样的 fnd = root.findall("./player[@name='rob']") 将查找名称中包含rob的所有元素,如下所示: Rob Robert chifforobe 您可以使用,但这只有在您切换到而不是只有部
fnd = root.findall("./player[@name='Pqp239']")
但是,这只会找到名称的精确匹配项。如何查找名称包含名称一部分的元素?所以应该是这样的
fnd = root.findall("./player[@name='rob']")
将查找名称中包含rob的所有元素,如下所示:
Rob
Robert
chifforobe
您可以使用,但这只有在您切换到而不是只有部分/有限XPath支持的xml.etree.ElementTree
时才起作用:
但是请注意,要使部分匹配不区分大小写,您需要另外应用:
ValueError:不支持带有编码声明的Unicode字符串。请使用无声明的字节输入或XML片段。
如何解决此问题?当我解析它时会发生这种情况。@Pqp239好的,请查看。
import lxml.etree as ET
tree = ET.parse("input.xml")
root = tree.getroot()
root.xpath("./player[contains(@name, 'rob')]")