2016-10-09 2 views
0

とSOAPレスポンスの解析:は、私が文字列として、次のSOAP応答を受信して​​います、SO PHP

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
     <GetListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 
      <GetListItemsResult> 
       <listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"> 
        <rs:data ItemCount="3"> 
         <z:row ows_DocIcon="jpg" ows_LinkFilename="18380014229851.jpg" ows_Modified="2016-10-08 17:27:40" ows_Editor="179440;#asdf" ows_Last_x0020_Modified="2;#2016-10-08 17:29:29" ows_ID="2" ows_Created_x0020_Date="2;#2016-10-08 17:27:40" ows_FileLeafRef="2;#18380014229851.jpg" /> 
         <z:row ows_DocIcon="jpg" ows_LinkFilename="18380014229851_2.jpg" ows_Modified="2016-10-08 17:27:40" ows_Editor="179440;#asfd" ows_Last_x0020_Modified="3;#2016-10-08 17:29:29" ows_ID="3" ows_Created_x0020_Date="3;#2016-10-08 17:27:41" ows_FileLeafRef="3;#18380014229851_2.jpg" /> 
         <z:row ows_DocIcon="jpg" ows_LinkFilename="18380014229851_3.jpg" ows_Modified="2016-10-08 17:27:40" ows_Editor="179440;#asdf" ows_Last_x0020_Modified="4;#2016-10-08 17:30:03" ows_ID="4" ows_Created_x0020_Date="4;#2016-10-08 17:27:41" ows_FileLeafRef="4;#18380014229851_3.jpg" /> 
        </rs:data> 
       </listitems> 
      </GetListItemsResult> 
     </GetListItemsResponse> 
    </soap:Body> 
</soap:Envelope> 

私は「Z:行」の各取得しようとしていますエントリを、それに伴う苦労しています名前空間(何人かのグーグル・グーグルの後で、私はそれらを呼ぶことを理解している)。

$xml = simplexml_load_string($sp->soapClient->__last_response); 

foreach($xml->GetListItemsResult as $item) 
{ 
    $ns_li = $item->children('uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'); 
    $ns_rs = $ns_li->children('urn:schemas-microsoft-com:rowset'); 
    $ns_z = $nr_rs->children('#RowsetSchema'); 
    echo $ns_z->row; 
} 

今私はecho文からの出力を取得していないのです。ここで

は、私が使用していたコードです。私は間違って何をしていますか?

答えて

0

XPath式を使用すると、さまざまな基準でXML文書の特定の部分を取得できます。

$xml->registerXPathNamespace("z", "#RowsetSchema"); 
foreach($xml->xpath('//z:row') as $item) 
{ 
    echo $item["ows_LinkFilename"] ."\n"; 
} 

eval.in demo

出力:

18380014229851.jpg 
18380014229851_2.jpg 
18380014229851_3.jpg 
例えば、接頭辞 zを登録した後、あなたは、単に //z:rowを行うことができ、XML文書内のどこにでも z:row要素を取得します
関連する問題