2012-11-21 60 views
1

xml數據是這樣的:讓孩子屬性使用SimpleXML

<feed>  
    <entry> 
     <abc:rank scheme="http://foo.bar">45</abc:rank> 
     <abc:rank scheme="http://foo2.bar">88</abc:rank> 
    </entry> 
    <entry> 
     <abc:rank scheme="http://foo.bar">125</abc:rank> 
     <abc:rank scheme="http://foo2.bar">32</abc:rank> 
    </entry> 
</feed> 

我能夠輸出的所有這些條目與此代碼:

foreach($xml->entry[$i]->children('abc', true) as $a) { 
    echo $a; 
} 

但是,如果我想在第一個條目中獲得內容爲「88」的內容,如

foreach($xml->entry[$i]->children('abc', true) as $a) { 
    if($a["scheme"] == "http://foo2.bar") 
     echo $a; 
} 

不起作用。

如何根據屬性選擇這些孩子?

回答

1

好吧,我現在明白了。對於那些對正確的解決方案感興趣的人:

$namespaces = $xml->entry[$i]->getNameSpaces('true'); 
    $abc= $xml->entry[$i]->children($namespaces['abc']); 
    foreach($abc->rank as $a) { 
     $scheme = $a->attributes(); 
     echo $scheme['scheme']; 
     echo " - "; 
    }