python解析xml以获取价值

时间:2019-07-11 19:25:40

标签: python xml xml-namespaces elementtree

我有一个来自系统之一的xml响应,我正在尝试使用python代码获取该值。需要专家观点来突出我的错误。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns3:loginResponse xmlns:ns2="http://ws.core.product.xxxxx.com/groupService/" xmlns:ns3="http://ws.core.product.xxxxx.com/loginService/" xmlns:ns4="http://ws.core.product.xxxxx.com/userService/"><ns3:return>YWeVDwuZwHdxxxxxxxxxxx_GqLtkNTE.</ns3:return></ns3:loginResponse>

我使用下面的代码,没有运气获得值-YWeVDwuZwHdxxxxxxxxxxx_GqLtkNTE。我还没有使用XML解析命名空间。 response.text具有以上xml响应。

responsetree = ET.ElementTree(ET.fromstring(response.text))
   responseroot = responsetree.getroot()
   for a in root.iter('return'):
       print(a.attrib)

2 个答案:

答案 0 :(得分:0)

load csv with headers from "file:///day.csv" as line MERGE (a:Person {person: line.person}) MERGE (b:Place{place: line.place, address: line.address, incident: line.incident, }) MERGE (a)-[:DAY {day:line.day}]->(b) 不在YWeVDwuZwHdxxxxxxxxxxx_GqLtkNTE中。这是元素attrib

在这种情况下,属性是一个空的字典

有关使用命名空间解析XML dic的信息,请参见https://www.cmi.ac.in/~madhavan/courses/prog2-2012/docs/diveintopython3/xml.html

答案 1 :(得分:0)

从其他答案中引用有助于理解这些概念。

一旦我了解了xml结构,它简单明了。仅添加输出可能会在将来对某人有所帮助,以供快速参考。

responsetree = ET.ElementTree(ET.fromstring(response.text)) responseroot = responsetree.getroot() root[0].text

保持简单易懂。您可能需要找到len(root)和/或使用条件遍历循环以获得apt值。您还可以将findallfind与一起使用以获得感兴趣的项目。