simplexml_load_string函数未读取soap代码


simplexml_load_string function not read soap code

我有以下代码:

    $result = <<<XML
    $flight
    XML;

    $soap = simplexml_load_string($result, NULL, NULL, "http://www.travelport.com/schema/air_v25_0");
    $soap->registerXPathNamespace('air', 'http://www.travelport.com/schema/air_v25_0');
    $test = $soap->xpath('//air:lowfaresearchrsp/air:airsegmentlist/air:airsegment');
    foreach ($test as $keyO => $valueO) {
        echo "<br/>****************************************<br/>", $keyO;
        foreach ($valueO->attributes() as $key => $value) {
            echo "<br/>";
            echo $key, " - ", $value;
        }
    }

$flight是由curl_exec()函数生成的一个巨大的soap字符串。

<?xml version="1.0" encoding="UTF-8"?>
 <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:body>
   <air:lowfaresearchrsp xmlns:air="http://www.travelport.com/schema/air_v25_0" xmlns:common_v25_0="http://www.travelport.com/schema/common_v25_0" currencytype="AUD" distanceunits="MI" responsetime="17105" transactionid="24B931EB0A0764774D967B23E7F522CB">
     <common_v25_0:responsemessage providercode="ACH" type="Error" code="700003">[ACH] Provider error: Provider transaction failed.</common_v25_0:responsemessage>
     <common_v25_0:responsemessage providercode="RCH" type="Error" code="701815">UserId,Password element(s) is/are missing in RCH Access Context.</common_v25_0:responsemessage>
     <air:flightdetailslist>
        <air:flightdetails destinationterminal="1" originterminal="2E" equipment="332" distance="3635" traveltime="520" flighttime="520" arrivaltime="2014-11-14T11:15:00.000-05:00" departuretime="2014-11-14T08:35:00.000+01:00" destination="JFK" origin="CDG" key="W57MJ5UPR3eKNycFDbvLHg==">
           <air:flightdetails destinationterminal="1" originterminal="2E" equipment="332" distance="3635" traveltime="515" flighttime="515" arrivaltime="2014-11-14T13:25:00.000-05:00" departuretime="2014-11-14T10:50:00.000+01:00" destination="JFK" origin="CDG" key="ZEprJLEGTPO5oKYbj0/8Ug==">
              <air:flightdetails destinationterminal="1" originterminal="2E" equipment="772" distance="3635" traveltime="510" flighttime="510" arrivaltime="2014-11-14T19:05:00.000-05:00" departuretime="2014-11-14T16:35:00.000+01:00" destination="JFK" origin="CDG" key="M2uITHooRlWN00a5Cf/esQ==">
                 <air:flightdetails destinationterminal="4" originterminal="2E" equipment="333" distance="3635" traveltime="510" flighttime="510" arrivaltime="2014-11-14T13:10:00.000-05:00" departuretime="2014-11-14T10:40:00.000+01:00" destination="JFK" origin="CDG" key="jl/0uOIRT3KG+qfJjfJMTQ==">
                    <air:flightdetails destinationterminal="1" originterminal="2E" equipment="388" distance="3635" traveltime="505" flighttime="505" arrivaltime="2014-11-14T16:20:00.000-05:00" departuretime="2014-11-14T13:55:00.000+01:00" destination="JFK" origin="CDG" key="LuzIXux/TmmbnuJZ9Gb23Q==">
                       <air:flightdetails destinationterminal="1" originterminal="2E" equipment="772" distance="3635" traveltime="500" flighttime="500" arrivaltime="2014-11-14T21:30:00.000-05:00" departuretime="2014-11-14T19:10:00.000+01:00" destination="JFK" origin="CDG" key="5BsjozbmT32Kw/zkkfdHJg==">
                          <air:flightdetails originterminal="2F" equipment="320" distance="247" traveltime="75" flighttime="75" arrivaltime="2014-11-14T15:40:00.000+01:00" departuretime="2014-11-14T14:25:00.000+01:00" destination="AMS" origin="CDG" key="t1PCkMniRSKw+zPsWsIjvQ==">
                             <air:flightdetails destinationterminal="4" equipment="74M" distance="3639" traveltime="595" flighttime="500" arrivaltime="2014-11-14T19:35:00.000-05:00" departuretime="2014-11-14T17:15:00.000+01:00" destination="JFK" origin="AMS" key="1r0XtTf+TvmXv64vgwAcLA==">
                                <air:flightdetails originterminal="2F" equipment="737" distance="247" traveltime="85" flighttime="85" arrivaltime="2014-11-14T11:45:00.000+01:00" departuretime="2014-11-14T10:20:00.000+01:00" destination="AMS" origin="CDG" key="cJHWqypWQ7K+EiK6gAg/uw==">
                                   <air:flightdetails destinationterminal="4" equipment="777" distance="3639" traveltime="595" flighttime="495" arrivaltime="2014-11-14T15:40:00.000-05:00" departuretime="2014-11-14T13:25:00.000+01:00" destination="JFK" origin="AMS" key="uc1ZFD5ISWG5u2vnTMl2HA==">
                                      <air:flightdetails originterminal="2F" equipment="321" distance="247" traveltime="80" flighttime="80" arrivaltime="2014-11-14T08:35:00.000+01:00" departuretime="2014-11-14T07:15:00.000+01:00" destination="AMS" origin="CDG" key="aTo+uIuHSj6gAhAgDjFPUg==">
                                         <air:flightdetails destinationterminal="4" equipment="333" distance="3639" traveltime="628" flighttime="508" arrivaltime="2014-11-14T13:03:00.000-05:00" departuretime="2014-11-14T10:35:00.000+01:00" destination="JFK" origin="AMS" key="9Nex3zh7RF6CPdrY1NhR1Q==">

我预期:

`****************************************0可用性资源-可用状态TYoptionalservicesindicator-falseparticipantlevel-航空公司来源更改平面-错误设备-332竞技性-是距离-3635飞行时间-520到达时间-2014-11-14T11:15:00.000-05:00出发时间-2014-11-14T08:35:00.000+01:00目的地-JFK原产地-CDG航班号-1022载波-DL组-0密钥-GtjA5xmlS22U96KdftKeJQ==


1可用性资源-可用状态TYoptionalservicesindicator-falseparticipantlevel-航空公司来源更改平面-错误设备-332竞技性-是距离-3635飞行时间-515到达时间-2014-11-14T13:25:0.000-05:00出发时间-2014-11-14T10:50:0.000+01:00目的地-JFK原产地-CDG航班号-1023载波-DL组-0密钥-vXNcJ/8iR/qKKO35/7sLoQ==


……`

但一无所获。

当我在这里粘贴xml代码时

    $result = <<<XML
    $flight
    XML;

它没有$flight,而是像我预期的那样正常工作。请帮帮我!

请检查粘贴的代码和原始代码。有时它可能也有上颚。当您从firebug或任何其他编辑器复制它们时,代码会自动转换为标准类型。

我的建议是改变这个

$test = $soap->xpath('//air:lowfaresearchrsp/air:airsegmentlist/air:airsegment');

$test = $soap->xpath('//air:LowfareSearchRsp/air:AirsegmentList/air:Airsegment');