[英]parse nested xml with php
您好,我正在嘗試解析嵌套的xml,但是我正在使用多個for循環來執行操作,但是我找不到非常合適的方法。
我想根據唯一的ID解析數據並將其分離,但無法找到任何簡單的方法
這是我的xml
<propertyList date="2014-06-02-17:30:33" username="adsss" password="v147C0z5CBlw">
<business modTime="2014-06-02-12:22:32" status="current">
<agentID>TEST</agentID>
<uniqueID>1420648</uniqueID>
<listingAgent id="1">
<name>jonny</name>
<telephone type="BH"></telephone>
<telephone type="mobile"></telephone>
<email>aT@cs.com.au</email>
</listingAgent>
<listingAgent id="2"></listingAgent>
</business>
<business modTime="2014-05-16-15:11:41" status="current">
<agentID>TEST</agentID>
<uniqueID>1435201</uniqueID>
<listingAgent id="1">
<name>Mike Smith</name>
<telephone type="BH"></telephone>
<telephone type="mobile"></telephone>
<email>acebrokers@bs.com.au</email>
</listingAgent><listingAgent id="2"></listingAgent>
</business>
</propertyList>
這是我的代碼
<?php
$xml=simplexml_load_file("myxmldata.xml");
echo "<pre>";
for($i=0;$i<count($xml);$i++):
echo "agentID=>".$xml->business[$i]->agentID;
echo "<br>";
echo "uniqueID=>".$xml->business[$i]->uniqueID;
echo "<br>";
endfor;
for($i=0;$i<count($xml->business->listingAgent);$i++):
echo "agentName=>".$xml->business->listingAgent[$i]->name;
endfor;
for($i=0;$i<count($xml->business->listingAgent->telephone);$i++):
echo "telephonetype=>".$xml->business->listingAgent->telephone[$i]->type;
endfor;
?>
嘗試這個:
$xml = simplexml_load_file("myxmldata.xml");
$data = array();
foreach($xml->business as $business) {
$business = (array) $business;
if (!array_key_exists($business['uniqueID'], $data)) {
$listingAgent = (array) $business['listingAgent'];
$data[$business['uniqueID']] = array(
'agentID' => $business['agentID'],
'uniqueID' => $business['uniqueID'],
'name' => (string)$listingAgent[0]->name,
'telephone' => (string) $listingAgent[0]->telephone[0],
'mobile' => (string) $listingAgent[0]->telephone[1],
'email' => (string) $listingAgent[0]->email,
);
}
}
var_dump($data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.