我有如下XML数据:
<root>
<results preview='0'>
<meta>
<fieldOrder>
<field>title</field>
<field>search</field>
</fieldOrder>
</meta>
<messages>
<msg type="DEBUG">msg1</msg>
<msg type="DEBUG">msg2</msg>
</messages>
<result offset='0'>
<field k='title'>
<value>
<text>text1</text>
</value>
</field>
<field k='search'>
<value>
<text>text2</text>
</value>
</field>
</result>
</results>
</root>
我想从标记k='search'>value>text
中提取标记值text2
。在
在我的代码中,我尝试以下操作:
^{pr2}$这给了我text1
和{text2
。我可以在我的程序中处理这个问题,让一个if
语句只过滤text2
值,但我想在findall()
中找到一种更健壮的方法来实现这一点。在
我尝试使用这段代码来专门提取text2
作为输出。在
for atype in root.findall(".//field[@k='search']//text"):
print(atype.text)
但这给了我一个错误-
File "command_curl", line 49, in <module>
for atype in root.findall(".//field[@k='search']//text"):
File "/usr/lib64/python2.6/xml/etree/ElementTree.py", line 355, in findall
return ElementPath.findall(self, path)
File "/usr/lib64/python2.6/xml/etree/ElementPath.py", line 198, in findall
return _compile(path).findall(element)
File "/usr/lib64/python2.6/xml/etree/ElementPath.py", line 176, in _compile
p = Path(path)
File "/usr/lib64/python2.6/xml/etree/ElementPath.py", line 93, in __init__
"expected path separator (%s)" % (op or tag)
SyntaxError: expected path separator ([)
我应该做些什么来只得到text2
作为我的输出?在
谢谢har07和tdelaney。我有一个你提到的旧版本的elementtree。在指向一个更新版本的python之后,代码现在可以正常工作了。在
您可以使用下面的示例从标记中提取文本
相关问题 更多 >
编程相关推荐