xml如果带有命名空间我们将如何解析,例如:
<ns1:CreateBillResponse xmlns:ns1="http://neusoft.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ns1:out><ns1:OutVo><ns1:strB2BCode xmlns="http://neusoft.com">AM1432690905685938443</ns1:strB2BCode><ns1:strFlag xmlns="http://neusoft.com">0</ns1:strFlag><ns1:strHpCode xsi:nil="true" xmlns="http://neusoft.com"/><ns1:strReason xmlns="
http://neusoft.com">,产品编码为空,售达方编码为空</ns1:strReason></ns1:OutVo></ns1:out></ns1:CreateBillResponse>
解析的方法:
function parseNamespaceXml($xmlstr)
{
$xmlstr = preg_replace('/\sxmlns="(.*?)"/', ' _xmlns="${1}"', $xmlstr);
$xmlstr = preg_replace('/<(\/)?(\w+):(\w+)/', '<${1}${2}_${3}', $xmlstr);
$xmlstr = preg_replace('/(\w+):(\w+)="(.*?)"/', '${1}_${2}="${3}"', $xmlstr);
$xmlobj = simplexml_load_string($xmlstr);
return json_decode(json_encode($xmlobj), true);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。