如何解析XML具有NS2元素
问题描述:
$xml_data = '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<ns2:orders xmlns:ns2="http://skt.tmall.business.openapi.spring.service.client.domain">
<ns2:order>
<ordNo>201303285538019</ordNo>
<ordPrdSeq>1</ordPrdSeq>
<addPrdNo>0</addPrdNo>
<addPrdYn>N</addPrdYn>
<ordEmail>[email protected]</ordEmail>
<clearanceEmail>[email protected]</clearanceEmail >
<dlvCstType>03</dlvCstType>
<dlvNo>140065055</dlvNo>
<lstDlvCst>0</lstDlvCst>
<lstSellerDscPrc>0</lstSellerDscPrc>
<lstTmallDscPrc>0</lstTmallDscPrc>
<memID>[email protected]</memID>
<memNo>25879997</memNo>
<ordAmt>0</ordAmt>
<ordCnQty>0</ordCnQty>
<ordDt>04-03-2014 10:40:32</ordDt>
<ordNm>Kil Jun Jeong</ordNm>
<ordOptWonStl>300000</ordOptWonStl>
<ordPayAmt>0</ordPayAmt>
<ordPrtblTel>010-2988-6401</ordPrtblTel>
<ordPrdStat>901</ordPrdStat>
<ordQty>0</ordQty>
<ordTlphnNo>070-7400-3141</ordTlphnNo>
<prdNm>test product name</prdNm>
<prdNo>233607759</prdNo>
<prdStckNo>1532843428</prdStckNo>
<rcvrBaseAddr>50929, Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur
</rcvrBaseAddr>
<rcvrDtlsAddr>jl setia budi </rcvrDtlsAddr>
<rcvrMailNo>156010</rcvrMailNo>
<rcvrNm>Kil Jun Jeong</rcvrNm>
<rcvrTlphn>070-7400-3141</rcvrTlphn>
<selPrc>100000</selPrc>
<sellerDscPrc>0</sellerDscPrc>
<tmallDscPrc>0</tmallDscPrc>
</ns2:order>
</ns2:orders>
';
这是我的XML,我想分析整个XML,我试着用下面的代码如何解析XML具有NS2元素
$xml = simplexml_load_string($xml_data);
print_r($xml);
但其返回空对象。
SimpleXMLElement对象()
我试着用children
XML解析,但同样的结果。我跟着这个link太多,但没有成功
答
您可以使用此:
$xml_data = str_replace("ns2:","",$xml_data);
$xml = simplexml_load_string($xml_data);
print_r($xml);
这个问题已经被问过,请检查:[http://*.com/questions/1575788/php-library-换解析的XML上带有一个冒号,在标签的名称(http://*.com/questions/1575788/php-library-for-parsing-xml-with-a-colons-in-tag - 名字) – Ibraheem
“我试着用XML解析儿童,但结果相同。” - *你尝试了什么?向我们展示代码。如果你只使用'print_r'尝试过,那么这可能是你的问题 - 'print_r'不能正确地“查看”SimpleXMLElements。访问您实际需要的特定数据(例如,使用简单的'echo')。 – IMSoP