xml.etree.ElementTree findall

时间:2016-05-11 23:28:40

标签: python xml python-3.x xml-parsing

我使用 xml.etree.ElementTree 解析XML file。我想根据name属性找到元素。

fnd = root.findall("./player[@name='Pqp239']")

但是,这只会找到名称的完全匹配。您如何寻找名称中包含名称一部分的元素?所以它会是这样的

fnd = root.findall("./player[@name='rob']")

会找到名字中包含rob的所有元素:

Rob
Robert
chifforobe

1 个答案:

答案 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