我正在尝试解析SOAP
来自服务器的响应。我对SOAP
使用HTTP
/进行交流是 100% 的新手,而且非常陌生HTTPS
。我在 Ubuntu 12.04 上使用 Python 2.7。
看起来SOAP
很像XML
。但是,我似乎无法解析它。我尝试使用ElementTree
但不断出错。通过搜索,我可以得出结论,SOAP
标签可能存在问题。(我可能会离开这里......如果我在,请告诉我。)
因此,这是我拥有的消息的示例SOAP
以及我试图解析它的方法(如果相关,这是来自 Link Point Gateway 的实际服务器响应)。
import xml.etree.ElementTree as ET
soap_string = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><fdggwsapi:FDGGWSApiOrderResponse xmlns:fdggwsapi="http://secure.linkpt.net/fdggwsapi/schemas_us/fdggwsapi"><fdggwsapi:CommercialServiceProvider/><fdggwsapi:TransactionTime>Wed Jul 25 10:26:40 2012</fdggwsapi:TransactionTime><fdggwsapi:TransactionID/><fdggwsapi:ProcessorReferenceNumber/><fdggwsapi:ProcessorResponseMessage/><fdggwsapi:ErrorMessage>SGS-002303: Invalid credit card number.</fdggwsapi:ErrorMessage><fdggwsapi:OrderId>1</fdggwsapi:OrderId><fdggwsapi:ApprovalCode/><fdggwsapi:AVSResponse/><fdggwsapi:TDate/><fdggwsapi:TransactionResult>FAILED</fdggwsapi:TransactionResult><fdggwsapi:ProcessorResponseCode/><fdggwsapi:ProcessorApprovalCode/><fdggwsapi:CalculatedTax/><fdggwsapi:CalculatedShipping/><fdggwsapi:TransactionScore/><fdggwsapi:FraudAction/><fdggwsapi:AuthenticationResponseCode/></fdggwsapi:FDGGWSApiOrderResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>'
targetTree = ET.fromstring(soap_string)
这会产生以下错误:
unbound prefix: line 1, column 0
从另一个 stackoverflow帖子中,我得出结论,这SOAP-ENV:Body
可能会导致命名空间问题。(我可能是错的。)
我已经进行了其他搜索以找到一个很好的解析解决方案,SOAP
但其中大部分来自 3 年多以前。似乎强烈推荐suds 。我想在我走得太远之前获得“更新”的建议。
任何人都可以推荐一种可靠(且简单)的方法来解析SOAP
我上面收到的响应吗?如果您能提供一个简单的示例来帮助我入门,将不胜感激(正如我上面所说,我对 完全陌生SOAP
)。