使用simplexml获取子属性

时间:2012-11-21 14:53:59

标签: simplexml

xml数据如下所示:

<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 个答案:

答案 0 :(得分: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 " - ";
    }
相关问题