这是我的代码和 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)
我试图找到 <user> 标签,其中 <name> 的文本值等于 123。
我尝试过的:
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']")
这些尝试都没有奏效。我错过了什么?
我得到的错误:
raise SyntaxError("invalid predicate")
File "<string>", line None
SyntaxError: invalid predicate
请您参考如下方法:
如异常所述,谓词中似乎有语法错误,标记名称和值之间不应有空格:
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
