使用php读取名称空间xml数据
我将xml数据作为使用php读取名称空间xml数据,php,xml-parsing,xml-namespaces,ixmldomdocument,Php,Xml Parsing,Xml Namespaces,Ixmldomdocument,我将xml数据作为 <ns:PartyIDs> <ns:ID schemeName="PartyTypeNumber">009</ns:ID> <ns:ID schemeName="PartyNumber">00038</ns:ID> <ns:ID schemeName="PartySubNumber">00038</ns:ID>
<ns:PartyIDs>
<ns:ID schemeName="PartyTypeNumber">009</ns:ID>
<ns:ID schemeName="PartyNumber">00038</ns:ID>
<ns:ID schemeName="PartySubNumber">00038</ns:ID>
</ns:PartyIDs>
改用
$doc->getElementsByTagnames()
有关详细信息,请参阅手册:
您需要提供
$namespaceUri
参数,该参数应该在XML文件的根元素中指定为xmlns:ns=”http://...“
你应该问个问题吗?出什么事了?您尝试了什么?您应该研究XPath,以便通过某些节点名处理DOMDocument中的数据。请参见此处获取灵感:当我尝试使用$PartyIDs=$doc->getElementsByTagName('ns:PartyIDs')$id=$PartyIDs->item(0);echo$id->nodeValue;它给了我一个错误,告诉我试图获取非objectHello Dan的属性,当标记带有名称空间时,如何使用XPath,就像感谢所有帮助一样
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, $url );
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST, true );
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $domObject->saveXML());
curl_setopt($soap_do, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen($domObject->saveXML()) ));
$response = curl_exec($soap_do);
$xml = new SimpleXMLElement($response); //file from response
$fileName="Response".date("Ymd_H_i_s");
$xml->saveXML($fileName);
$doc = new DOMDocument();
$doc->load($fileName);//loading response file