2013-09-19 3 views
0
<?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="2"> 
         <z:row ows_ID='1' ows_MetaInfo='1;#vti_parserversion:SR|14.0.0.6134&#13;&#10;' /> 
          <z:row ows_ID='2' ows_MetaInfo='2;#vti_parserversion:SR|14.0.0.6134&#13;&#10;' /> 
        </rs:data> 
       </listitems> 
      </GetListItemsResult> 
     </GetListItemsResponse> 
    </soap:Body> 
</soap:Envelope> 

строка XMLошибка строка ответа синтаксического анализа XML в PHP

Что я хочу, чтобы это ItemCount атрибут из rs:data узла

, что я пытаюсь это

$dom = new DOMDocument; $dom->loadXML($result->data); $xpath = new DOMXPath($dom); 

$seats = $xpath->query('//rs:data[@ItemCount]'); print_r($seats); 

Пожалуйста, помогите, как я новичок в Drupal PHP с правильным способом получить значение для атрибута itemcount от этого узла rs:data. Я перепробовал много способов даже с помощью SimpleXML, но никто не работал, пожалуйста, поделитесь фрагменты кода

Благодаря

+1

Похоже, что 'ows_MetaInfo'-атрибуты отсутствуют закрывающий апостроф? – Quasdunk

+0

Фактически, у этого узла было слишком много данных, я только что удалил избыточные атрибуты данных с этого узла, поскольку это не имело значения, иначе xml в порядке – user21105

ответ

1

Я думаю, что вам не нужно разобрать его, как XML, чтобы получить одно значение, я думаю, было бы лучше использовать preg_match_all как это.

preg_match_all('/rs:data ItemCount="(.*?)"/', $string, $match); 

working example

Смежные вопросы