2012-07-15 37 views
0

您好,我有一個這樣的XML代碼:訪問一個SimpleXML的元素導致的家長在「陣列」

<article> 
    <title><![CDATA[IEEE Transactions on]]></title> 
    <articleinfo> 
    <articleseqnum>13</articleseqnum> 
    <idamsid>0b0000648011bcfb</idamsid> 
............. 

我嘗試用SimpleXML訪問元素的父是這樣的:

$xmlUrl = "example.xml"; // XML feed file/URL 

$xmlStr = file_get_contents($xmlUrl); 

$xmlObj = simplexml_load_string($xmlStr); 

$titles = $xmlObj->xpath("//title"); 

foreach ($titles as $title) 
{ 
    $parent_title = $title->xpath("parent::*"); 

    echo "Parent element of title: ". $parent_title."</br>"; 

} 

但是我把這個結果:

Parent element of title: Array 

而不是

Parent element of title: article 

可能是什麼問題?先謝謝你!

+1

' - > xpath()'總是返回一個數組 - 即使它只返回一個節點。 – hakre 2012-07-15 11:46:58

+0

嗯。好。但是,我怎麼能返回所需的結果? – 2012-07-15 11:50:31

+0

嘗試使用:'name(parent :: *)'或等價的和更短的:'name(..)' – 2012-07-15 16:02:19

回答

0

從 - > xpath()結果數組中取出第一個元素,並在其上調用getName()。 (在循環中)

$parent_title = $title->xpath("parent::*"); 
if ($parent_title) { 
    echo "Parent element of title: ", $parent_title[0]->getName(), "</br>\n"; 
} 
+0

這正是我需要的!朋友,謝謝!! – 2012-07-15 16:50:20