我使用了XML格式的CURL从url中获取了内容。但我想以变量的形式分离内容,我尝试使用“simplexml_load_string”。 我的网址内容是: -
<GetGPSRawDataResponse xmlns="http://example.org/">
<GetGPSRawDataResult>
[{"IMIENO":"35xxxxxxxxxxx","Lattitude":24.4286285,"Longitude":73.0507245,"Altitude":0.000,"Speed":0.000,"CTime":"Jul 8 2015 7:24:02:000PM","RecordTime":"Jul 9 2015 8:46AM","DevDistance":0.1000,"CardID":""},{"IMIENO":"35xxxxxxxxxx","Lattitude":24.4286285,"Longitude":73.0507245,"Altitude":0.000,"Speed":0.000,"CTime":"Jul 8 2015 7:19:02:000PM","RecordTime":"Jul 9 2015 8:49AM","DevDistance":0.0950,"CardID":""}]
</GetGPSRawDataResult></GetGPSRawDataResponse>
我尝试从xml中获取内容,如: -
$abc=get_data($url);//get_data is a function that is working to fetch url contents
//After fetching the above contents from the url.
I did $xml_retrieve=simplexml_load_string($abc);
但是$ xml什么都不返回。我不明白为什么?我想从上面的内容中得到纬度和经度但是我不明白我在哪里做错了如果这是唯一的方法
答案 0 :(得分:0)
HAving从未使用过simplexml我不确定,但看起来你所做的就是加载xml来创建对simplexml对象的引用。我认为你需要在$xml_retrieve
上使用另一种方法来获取你想要的实际数据。
从手册中可以看出simplexml_load_string:
返回类SimpleXMLElement的对象,其属性包含 xml文档中保存的数据。
我尝试使用simple_xml,但无法使xpath方法工作,因此恢复使用标准的DOMDocument。
libxml_use_internal_errors( true);
$dom = new DOMDocument;
$dom->validateOnParse=false;
$dom->standalone=true;
$dom->preserveWhiteSpace=true;
$dom->strictErrorChecking=false;
$dom->recover=true;
$dom->loadXML( $get_data( $url ) );
libxml_clear_errors();
/* Get the node in the document you need */
$col=$dom->getElementsByTagName('GetGPSRawDataResult');
$node=$col->item(0);
/* decode response */
$o=json_decode( $node->nodeValue );
/*Get first item from array */
$j=$o[0];
/* do whatever you need with each of the constituent pieces from the json data */
echo 'IMIENO='.$j->IMIENO.' Lattitude='.$j->Lattitude.' Longitude='.$j->Longitude;