使用 ElementTree 解析 Python 中的 XML - findall
Parsing XML in Python with ElementTree - findall
我正在使用文档 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
但它只是 returns 一个空列表 []
。我尝试过其他事情但没有成功。有任何想法吗?所有建议表示赞赏。谢谢!
编辑:这也不会打印任何内容:
values = ET.fromstring(response_data)
for i in values.findall(".//ElementIWant"):
print i.text
使用 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
尝试使用
BeautifulStoneSoup
要么
ElementTree
几年前我用 BeautifulStoneSoup 为一个项目解析了一个 XML,它应该对你有帮助。
我正在使用文档 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
但它只是 returns 一个空列表 []
。我尝试过其他事情但没有成功。有任何想法吗?所有建议表示赞赏。谢谢!
编辑:这也不会打印任何内容:
values = ET.fromstring(response_data)
for i in values.findall(".//ElementIWant"):
print i.text
使用 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
尝试使用 BeautifulStoneSoup 要么 ElementTree
几年前我用 BeautifulStoneSoup 为一个项目解析了一个 XML,它应该对你有帮助。