2013-03-27 97 views
0

我通過xpath選擇從SimpleXML的對象中的某個節點:simplexml和xpath - 回顯節點?

$x="<root> 
    <person> 
    <name>Julie</name> 
    <age>37</age> 
    <rating>5</rating> 
    </person> 
    <person> 
    <name>Greta</name> 
    <age>56</age> 
    <rating>7</rating> 
    </person> 
    <person> 
    <name>Kerstin</name> 
    <age>38</age> 
    <rating>10</rating> 
    </person> 
</root>"; 

$xml = simplexml_load_string($x); 

$person = $xml->xpath("//person[name='Greta']"); 

foreach ($person[0] as $k => $v) 
    echo "$k => $v<br />"; 

這是預期輸出...

name => Greta<br />age => 56<br />rating => 7<br />  

然後我做...

echo $person[0]['age']; 

輸出:

沒錯!爲什麼?

嘗試住@http://3v4l.org/Voalu

回答

1

SimpleXML使用對象屬性,而不是陣列成員,爲子節點(陣列部件用於訪問節點的屬性)。下面的表達式將讓你的年齡:

echo $person[0]->age; 

如果XML已經看上去像下面,你的代碼會工作:

<root> 
    <person age="37"> 
     <name>Julie</name> 
     <rating>5</rating> 
    </person> 
    ... 
+0

哈哈,這很容易,謝謝! – michi 2013-03-27 23:14:36