XMLDATA:
<configuration>
<system.serviceModel>
    <client>
      <endpoint name="ClassRelationService"
                address="net.tcp://192.168.1.61:9003/class/"
                binding="netTcpBinding"
                contract="CiWong.Relation.WCFContract.IClassRelationManager"
                bindingConfiguration="NetTcpBinding_IClassRelationManager" />
      <endpoint name="shopEndpoint"
                address="net.tcp://192.168.1.61:9005/eshop/"
                binding="netTcpBinding"
                contract="CiWong.EShop.WCFService.Contract.IEShopContract"
                bindingConfiguration="NetTcpBinding_IEShopContract"/>
    </client>
</system.serviceModel>
</configuration>解析代码:<?php
$list=$doc->getElementsByTagName('system.serviceModel');
$list=$list->item(0);
$clients=$list->getElementsByTagName('client');
$clients=$clients->item(0);
foreach ($clients->attributes as $endpoints) {
$endattname=$endpoints->nodeName;
         $endattval=$endpoints->nodeValue;
echo "$endattname=$endattval"."<br>";
}
?>
echo出来没有任何内容。
请问怎么才能正常把endpoint里面的属性解析出来?

解决方案 »

  1.   

    $xml = simplexml_load_file("bb.xml");  
    $result = $xml->xpath('/configuration/system.serviceModel/client/endpoint');
    foreach($result as $r){
           foreach($r->attributes() as $k=>$v) echo "$k=>$v<br>";
    }
    name=>ClassRelationService
    address=>net.tcp://192.168.1.61:9003/class/
    binding=>netTcpBinding
    contract=>CiWong.Relation.WCFContract.IClassRelationManager
    bindingConfiguration=>NetTcpBinding_IClassRelationManager
    name=>shopEndpoint
    address=>net.tcp://192.168.1.61:9005/eshop/
    binding=>netTcpBinding
    contract=>CiWong.EShop.WCFService.Contract.IEShopContract
    bindingConfiguration=>NetTcpBinding_IEShopContract