2013-02-05 98 views
-1

我遇到了PHP和XML的問題。我有一個我想要導入到數據庫的XML數據。大多數值工作正常,但屬性不起作用。在PHP中讀取XML屬性

我試圖用$brand = $allData[$key]->property->brand->value;選擇「品牌」屬性,但它不起作用。

這是讀取data.xml的PHP。代碼來了XML之後。

$xml = simplexml_load_file("data.xml"); 
foreach($xml->children() as $child) 
{ 
$allData[] = $child; 
} 


foreach($allData as $key=>$value) 
{ 
$naam = $allData[$key]->name; 
$image = $allData[$key]->images->image; 

} 

--- XML代碼的一部分----

<images> 
<image>afbeelding.jpg</image> 
</images> 
<description>beschrijving</description> 
<categories> 
<category path="categorie"> Categorie </category> 
</categories> 

<properties> 
<property name="brand"> 
<value>Merk</value> 
</property> 

我可以得到說明和圖片標籤很容易。但品牌不起作用。

$brand = $allData[$key]->property->brand->value;

有沒有人誰可以幫我?

+1

與其強迫你的XML像數組一樣,請閱讀http://www.php.net/manual/en/class.simplexmlelement.php SimpleXMLElement接口。您可以使用attributes屬性來獲取所需內容。 – Jerry

回答

0

我不明白你爲什麼通過強制它進入數組來迭代某些東西。對你的問題的簡短回答是: $ brandProperty =(string)$ allData [$ key] - > property-> attributes() - > name;

好得多:按照傑裏的建議和RTM - 閱讀精美的手冊。手動和用戶貢獻的筆記有你需要的所有信息和更多信息。 SimpleXML本身實現迭代,使用諸如foreach ($xml->children() as $node)之類的東西來遍歷文檔更容易。

希望有所幫助。