从SOAP响应中解析XML

时间:2011-08-17 18:12:21

标签: php xml soap

我正在试图弄清楚如何解析XML响应,但没有运气,我需要的是记录部分:

<env:envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:header/>
<env:body>
<ns2:getcalllogreportresponse xmlns:ns2="http://service.admin.ws.five9.com/">
<return>
<header>
<values>
<data>DATE</data>
<data>TIME</data>
<data>DNIS</data>
<data>ANI</data>
<data>CALL TYPE</data>
<data>CAMPAIGN</data>
<data>AGENT</data>
<data>DISPOSITION</data>
<data>SKILL</data>
<data>DURATION</data>
<data>BILL TIME (ROUNDED)</data>
<data>HOLD TIME</data>
<data>QUEUE WAIT TIME</data>
<data>HANDLE TIME</data>
<data>RATE</data>
<data>COST</data>
</values>
</header>
<records>
<values>
<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true">...</data>
</values>
</records>
<records>...</records>
<records>...</records>
<!--...-->

我使用的是PHP,但对XML和SOAP来说却是全新的。感谢。

1 个答案:

答案 0 :(得分:2)

那是因为您不应该手动执行soap请求或响应。您可以使用类似SoapClient的库,为其提供一个WSDL文件(应该通过您尝试访问的任何服务使其可用)。 SoapClient获取此WSDL文件并向您返回一个对象,该对象具有很少的方法,您可以调用这些方法与服务进行交互。如果肥皂看起来很难,手动或愚蠢,那么(你怀疑)你做错了。我很高兴您问过,因为我遇到了一些开发人员,他们犯了这个错误并花了6个月的时间来构建类来手动与SOAP服务接口。