这是我的代码和 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
关于python - 使用 python 通过标记文本搜索 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31206788/