duan2428 2019-05-12 12:29
浏览 60
已采纳

我试图获取值或所有a:属性[重复]

I have used PHP SimpleXML, simplexml_load_string, and i get no response even after using DOM and SimpleXML

//Php XML Response

$xml = <<<XML
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
    <StatusResponse xmlns="http://tempuri.org/">
    <Result xmlns:a="http://schemas.datacontract.org/2004/07/OS.FLC" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <a:ResCode>OK</a:ResCode>
    <a:IDNumber>149897</a:IDNumber>
    <a:CusName>AXIOS ASOS</a:CusName>
    <a:HoldName>AXA AXIOS</a:HoldName>
    </Result>
    </StatusResponse>
    </s:Body>
    </s:Envelope>
    XML;

// using PHP SIMPLE XML

$domContent = new SimpleXMLElement(((string)$xml), LIBXML_COMPACT);
$test = $domContent->xpath('/Result/a/*');
foreach ($test as $node) 
{
     print_r($node);
}

//Using DOM

$domp = new DOMDocument('1.0', 'utf-8');
$domp->loadXML($xml);
$items = $domp->getElementsByTagName('a');
foreach ($items as $item) 
{
     $HOLDER = $item->getElementsByTagNameNS("http://schemas.datacontract.org/2004/07/OS.FLC", "*")->Result(0)->nodeValue;
     echo "HoldName = " . $HOLDER . PHP_EOL;
}


// Expected Result

ResCode = OK
IDNumber = 149897
CusName = AXIOS ASOS
</div>
  • 写回答

1条回答 默认 最新

  • duanbin198788 2019-05-12 14:44
    关注

    Using DOMDocument, you can use getElementsByTagNameNS and specify the whole URL of a :

    $doc = new DOMDocument('1.0', 'utf-8');
    $doc->loadXML($xml);
    
    $elements = $doc->getElementsByTagNameNS('http://schemas.datacontract.org/2004/07/OS.FLC', '*');
    foreach($elements as $elem)
    {
        echo $elem->nodeName . ' -> ' . $elem->nodeValue ;
    }
    

    Output :

    a:ResCode -> OK
    a:IDNumber -> 149897
    a:CusName -> AXIOS ASOS
    a:HoldName -> AXA AXIOS
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了