使用python通过标签文本进行XML搜索

Joã*_*ulo 1 python xml

这是我的代码和XML:

xml_string = """
<data>
    <user>
        <name>123</name>
    </user>
    <user>
        <name>456</name>
    </user>
</data>
"""

import xml.etree.ElementTree as ET
root = ET.fromstring(xml_string)
Run Code Online (Sandbox Code Playgroud)

我正在尝试查找文本值等于123的<user>标签<name>

我尝试过的

result = root.findall("./user[name = '123']")
result = root.findall("./user[./name = '123']")
result = root.findall("./user[/name = '123']")
result = root.findall("./user[./name text() = '123']")
Run Code Online (Sandbox Code Playgroud)

这些尝试均无济于事。我想念什么?

我得到的错误:

raise SyntaxError("invalid predicate") 
File "<string>", line None
SyntaxError: invalid predicate
Run Code Online (Sandbox Code Playgroud)

agm*_*gas 5

如异常所示,谓词似乎存在语法错误,标记名和值之间不应有空格:

xml_string = """
<data>
    <user>
        <name>123</name>
    </user>
    <user>
        <name>456</name>
    </user>
</data>
"""

import xml.etree.ElementTree as ET
root = ET.fromstring(xml_string)

result = root.findall("./user[name='123']")

print result
Run Code Online (Sandbox Code Playgroud)