我正在尝试解析xml响应,我将其作为字符串返回到我可以实际使用的内容中。到目前为止,我使用的是xml.etree.ElementTree,但它无法正常工作。
import xml.etree.ElementTree as ET
xml_response = initialize_header(xml_param, 'AirService').text
#Take out SOAP envelope
xml_response=xml_response.split('<SOAP:Body>',1)[1].split('</SOAP:Body>',1)[0]
#Put into XML tree. Not perfect
root=ET.fromstring(xml_response)
#Basic info for first flight, dict
first_flight=root.find('{http://www.travelport.com/schema/air_v29_0}AirPricingSolution').attrib
#root[5][2].attrib['TotalPrice']
return root, first_flight ,xml_response#, etree_to_dict(root)
当我访问根节点的子节点时,我得到以下内容:
<Element '{http://www.travelport.com/schema/common_v29_0}ResponseMessage' at 0x3015730>
<Element '{http://www.travelport.com/schema/air_v29_0}FlightDetailsList' at 0x30157b0>
<Element '{http://www.travelport.com/schema/air_v29_0}AirSegmentList' at 0x3015630>
<Element '{http://www.travelport.com/schema/air_v29_0}FareInfoList' at 0x3015d30>
<Element '{http://www.travelport.com/schema/air_v29_0}RouteList' at 0x3015fb0>
<Element '{http://www.travelport.com/schema/air_v29_0}AirPricingSolution' at 0x3033030>
<Element '{http://www.travelport.com/schema/air_v29_0}AirPricingSolution' at 0x2fec7d0>
<Element '{http://www.travelport.com/schema/air_v29_0}AirPricingSolution' at 0x3033b90>
我的问题是我希望能够在创建元素树时摆脱{http:// .....}部分,所以当我把它变成字典时,它就会被删除更有效。最好的方法是什么?此外,我并非100%在etrees上销售,如果有人有更好的解决方案,请告诉我。
提前致谢。