Skip to main content
 首页 » 编程设计

python之使用 python 通过标记文本搜索 XML

2025年05月04日33jpfss

这是我的代码和 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