2013-02-12 62 views
0

我想在PHP中閱讀以下結構。在php中閱讀xml

<Listing> 
<Unit_Type> 1 Bedroom </Unit_Type> 
<Facilities> 
<facility>Balcony</facility> 
<facility>Basement parking</facility> 
<facility>BBQ area</facility> 
<facility>Built in wardrobes</facility> 
<facility>Covered parking</facility> 
</Facilities> 
</Listing> 

以下是我的代碼。

$feeds = new DOMDocument(); 
$feeds->load("propspace.xml"); 
$properties = $feeds->getElementsByTagName("Listing"); 

foreach($properties as $property){ 
$unittype_tag = $property->getElementsByTagName("Unit_Type"); 
$unit_type = $unittype_tag->item(0)->nodeValue; 

} 

<facility>標籤的數量可以變化。

任何幫助,將不勝感激。

+0

搜索 「的DOMDocument DOMXPath」。 – Jon 2013-02-12 09:56:10

+0

難道你不能簡單地使用'$ property-> getElementsByTagName(「Facilities」)'併爲此創建一個'foreach'嗎? – h2ooooooo 2013-02-12 09:58:52

+0

阿西夫,你應該清楚你運行的具體問題。您的代碼看起來不像是否會被破壞。由於它看起來很好,所以你不清楚你在問什麼。它只是工作:http://eval.in/9576 – hakre 2013-02-12 12:15:42

回答

1

要閱讀設備,只需撥打getElementsByTagName("facility")$property

​​

輸出

陽臺
地下停車場
燒烤區
內置衣櫃
室內停車場

Demo

0
<?php 

    $xml = ' 
    <Listing> 
     <Unit_Type> 1 Bedroom </Unit_Type> 
     <Facilities> 
     <facility>Balcony</facility> 
     <facility>Basement parking</facility> 
     <facility>BBQ area</facility> 
     <facility>Built in wardrobes</facility> 
     <facility>Covered parking</facility> 
     </Facilities> 
    </Listing>'; 

    $feeds = new DOMDocument(); 
    $feeds->loadXML($xml); 
    $properties = $feeds->getElementsByTagName("Listing"); 

    foreach($properties as $property) 
    { 
    $unittype_tag = $property->getElementsByTagName("Unit_Type"); 
    $unit_type = $unittype_tag->item(0)->nodeValue; 
    $Facilities = $property->getElementsByTagName("facility") 
    foreach($Facilities as $facility) 
    { 
     echo "<pre>"; 
     print_r($facility->nodeValue); 
     echo "</pre>"; 
    }  
    } 

?>