这是我的代码和XML:
def convertlist(l):
if isinstance(l , (list, tuple)):
return list(map(convertlist, l))
elif isinstance(l , long):
return int(l)
else:
return l
>>> l = [1L , 2L , [3L]]
>>> convertlist(l)
[1, 2, [3]]
我试图找到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>
的文字值等于123。
我尝试过:
<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']")
答案 0 :(得分:4)
正如异常所说,似乎你在谓词中有语法错误,标签名称和值之间不应该有空格:
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