我使用文档here尝试仅获取某些元素的值。
这是我的XML结构的一个例子:
<ListOrdersRequest>
<ListOrdersResult>
<Orders>
<Order>
...
<ElementIWant>value_I_want</ElementIWant>
</Order>
<Order>
...
<ElementIWant>value_I_want</ElementIWant>
</Order>
...
</Orders>
</ListOrdersResult>
</ListOrdersRequest>
我将整个XML文件保存到字符串变量response_data
,我只想要元素ElementIWant
中的值。
在文档中解析this示例,我尝试过这样的事情:
values = ET.fromstring(response_data).findall(".//ElementIWant")
print values
但它只返回一个空列表[]
。我尝试过其他事情但没有成功。有任何想法吗?所有建议都赞赏。谢谢!
编辑:这不会打印任何内容:
values = ET.fromstring(response_data)
for i in values.findall(".//ElementIWant"):
print i.text
答案 0 :(得分:2)
使用text
属性仅打印特定标记的值。
import xml.etree.ElementTree as ET
response_data = '''<ListOrdersRequest>
<ListOrdersResult>
<Orders>
<Order>
...
<ElementIWant>value_I_want</ElementIWant>
</Order>
<Order>
...
<ElementIWant>value_I_want</ElementIWant>
</Order>
...
</Orders>
</ListOrdersResult>
</ListOrdersRequest>'''
for i in ET.fromstring(response_data).findall(".//ElementIWant"):
print i.text
<强>输出:强>
value_I_want
value_I_want
答案 1 :(得分:-1)
尝试使用 BeautifulStoneSoup 要么 ElementTree
几年前我使用BeautifulStoneSoup来解析一个项目的XML,它应该对你有帮助。