我有以下xml代码:
档案1.xml
<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="">
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<dsAanbod>
<Pand diffgr:id="Pand1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<PandID>231384</PandID>
</Pand>
</dsAanbod>
</diffgr:diffgram>
</DataSet>
我如何阅读
之间的数据我有以下php代码
<?php
$xml_url = "1.xml";
$xml = simplexml_load_file($xml_url);
foreach ($xml as $entry){
//Use that namespace
$namespaces = $entry->getNameSpaces(true);
//Now we don't have the URL hard-coded
$diffgr = $entry->children($namespaces['diffgr']);
echo $diffgr->diffgram->dsAanbod->Pand->PandID;
}
?>
但这不起作用。
有人可以帮助我访问它是名称空间元素子节点的节点。
亲切的问候
答案 0 :(得分:2)
哦,从哪里开始。这个工作代码可能会说明一些问题:
<?php
$xml_url = "1.xml";
$xml = simplexml_load_file($xml_url);
foreach($xml->children('diffgr',true) as $diffgr){
$weirdemptynamespace = $diffgr->children('',true);
echo $weirdemptynamespace->dsAanbod->Pand->PandID;
}
列举一些问题:
xmlns=""
与没有命名空间不一样,在我看来,只是......好吧,很奇怪。foreach
为时过早(应在根元素(children('diffgr')
)上调用Dataset
。children()
的第二个参数设置为true
。