【发布时间】:2018-08-27 10:46:39
【问题描述】:
我是一个尝试使用 Elementtree 解析 XML API 响应的 Python 菜鸟。响应包含来自表单的自定义数据,我在尝试访问某些嵌套元素时遇到了麻烦。以下是我的代码:
response = requests.get("https://crm.zoho.com/crm/private/xml/Deals/getCVRecords?newFormat=1&authtoken=authtoken&scope=crmapi&cvName=Open Deals")
tree = ElementTree.fromstring(response.content)
print (response.text)
通过这个电话,我能够得到这样的回应:
<?xml version="1.0" encoding="UTF-8" ?>
<response uri="/crm/private/xml/Deals/getCVRecords">
<result>
<Deals>
<row no="1">
<FL val="DEALID">123456789</FL>
<FL val="SMOWNERID">0000000000</FL>
<FL val="Deal Owner"><![CDATA[helpme]]></FL>
</row>
</Deals>
</result>
</response>
我正在尝试访问 [CDATA[helpme]] 元素中的 DEALID# (123456789) 以及 HELPME。任何帮助是极大的赞赏。谢谢!
【问题讨论】:
-
你试过什么?你知道在
tree.find中使用 XPATH 查询吗? -
如果您对 XPATH 感到困惑,
.//FL[@val='DEALID']会处理您的第一个问题,或者./result/Deals/row/FL[@val='DEALID']。您应该能够决定是想要第一个,第二个,还是比第一个更明确但不如第二个明确的东西。从那里开始,弄清楚如何从节点中取出文本,以及如何进行其他搜索,应该很容易。但是,如果您遇到困难,您将有一个很好的、具体的问题要问。
标签: python xml xml-parsing elementtree