我使用 xml.etree.ElementTree 解析XML file。我想根据name属性找到元素。
fnd = root.findall("./player[@name='Pqp239']")
但是,这只会找到名称的完全匹配。您如何寻找名称中包含名称一部分的元素?所以它会是这样的
fnd = root.findall("./player[@name='rob']")
会找到名字中包含rob的所有元素:
Rob
Robert
chifforobe
答案 0 :(得分:2)
您可以使用contains()
function,但这只有在您切换到lxml.etree
而不是xml.etree.ElementTree
时才有效,而import lxml.etree as ET
tree = ET.parse("input.xml")
root = tree.getroot()
root.xpath("./player[contains(@name, 'rob')]")
只有部分/有限的XPath支持 :
DELETE y
FROM X
LEFT JOIN Y
ON
X.COL1=Y.COL1
AND
X.COL2=Y.COL2
AND
X.COL3=Y.COL3
WHERE
Y.COL1 IS NULL
但请注意,要使部分匹配不区分大小写,您需要另外应用translate()
function: