我需要帮助。。php soap

我需要帮助。。php soap,php,xml,soap,Php,Xml,Soap,我有一个xml文档,我需要通过帮助php获得name属性的值。xml文件如下所示: <?xml version="1.0" encoding="utf-8"?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:GetGoodsTreeResponse xmlns:ns2="http://b2b.alta.com.ge" xmln

我有一个xml文档,我需要通过帮助php获得name属性的值。xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:GetGoodsTreeResponse xmlns:ns2="http://b2b.alta.com.ge" xmlns:ns3="http://192.168.0.10/b2b">
         <ns3:GoodsTree level="0">
            <item id="010000000017337" level="0" name="COMPUTERS" is_open="N">
               <item id="015000000030431" level="1" name="ALTA" is_open="Y">
                  <item id="015000000030443" level="2" name="Zakaznoe Izdelie" is_open="N"/>
                  <item id="015002000031034" level="2" name="ATOM" is_open="N"/>
                  <item id="015005000030453" level="2" name="Celeron" is_open="N"/>
                  <item id="015010000030432" level="2" name="Dual Core" is_open="N"/>
                  <item id="015150000030778" level="2" name="i3" is_open="N"/>
                  <item id="015220000030775" level="2" name="i5" is_open="N"/>
                  <item id="015300000031827" level="2" name="i7" is_open="N"/>
               </item>
               <item id="010001005030300" level="1" name="Apple" is_open="N"/>
               <item id="010001001033496" level="1" name="Asus" is_open="N"/>
               <item id="010001001015793" level="1" name="Fujitsu" is_open="N"/>
               <item id="010001002015166" level="1" name="HP Compaq" is_open="N"/>
            </item>
          </ns3:GoodsTree>
      </ns2:GetGoodsTreeResponse>
   </S:Body>
</S:Envelope>


请帮帮我,我不知道该怎么办。。对不起,我说的是英语。

您可以使用
DOMDocument
解析该XML并使用
DOMXpath
获取所有项目,然后循环所有项目并根据位置获取属性(
id
=0,
name
=2),然后创建一个新数组,该数组将保存所有项目id及其名称:

$dom = new DOMDocument;
$dom->loadXML($xml);

$xpath = new DOMXPath($dom);
$xpath->registerNamespace('S', 'http://schemas.xmlsoap.org/soap/envelope/');

$items = array();

$el = $xpath->query('//item');
foreach($el as $item){
    $attributes = $item->attributes; 
    $items[$attributes->item(0)->value] = $attributes->item(2)->value;
}

var_dump($items); // $items will be an array with item id and it's value will be item name

非常感谢您的回答,但它会输出错误:警告:DOMDocument::loadXML()[DOMDocument.loadXML]:应为开始标记,“如果您进行检查,您将看到它根据提供的XML工作。