2014-03-06 210 views
0

屬性我有一個XML文件,如下所示:獲取XML元素的SimpleXML

<?xml version="1.0" ?> 
<shop version="2.0" shop-name="XYZ"> 
<category name="FOO1"> 
    <subcategory name="Foobar1"> 
    <product name="Productname1" id="1"> 
     <supplier name="XXX" logo="XXX.gif" /> 
     <desc>DESC</desc> 
    </product> 
    <product name="Productname2" id="2"> 
     ... 
    </product> 
    </subcategory> 
</category> 
</shop> 

,我想獲得屬性店元素的值 - 這正是店鋪的名稱

我在PHP中的SimpleXML:

<?php 
    $dataXML=simplexml_load_file("data.xml"); 
    $a=$dataXML->shop[0]["shop-name"]; 
    echo $a; 
?> 

因此我什麼也得不到。有什麼想法是錯的?

回答

1

這些都是屬性,所以你需要用attributes()方法正確地訪問它們:

$data = simplexml_load_file('data.xml'); 
$attributes = $data->attributes(); 
echo $attributes['shop-name']; 

或者你也可以直接訪問它,因爲它是main attribute

$data = simplexml_load_file('data.xml'); 
echo $data['shop-name']; 
2

使用getAttribute() methdo讀取屬性名稱。

<?php 
    $dataXML = simplexml_load_file("data.xml"); 
    $shopName = $dataXML->getAttribute("shop-name"); 
    echo $shopName; 
?>