SimpleXml访问属性

时间:2013-12-06 04:43:42

标签: php foreach simplexml

我正在尝试使用simplXML

访问属性

以下是我的XML格式示例:

<xml>
    <config>
        <anothernode></anothernode>
        <anothernode></anothernode>
        <anothernode></anothernode>
        <anothernode></anothernode>
        <anothernode></anothernode>
        <popup name="rory" type="y" />
        <popup name="joe" type="z" />
        <popup name="pat" type="u" />
        <popup name="mary" type="v" />
    </config>
</xml>

这是第一个弹出名称,即“Rory”:

echo "exported: " . $xml->config->popup['name'] . "<br >";

这是第一种类型的回声,即“y”

echo "exported: " . $xml->config->popup['type'] . "<br >";

我试图循环遍历所有这些并让所有的值如此生病有类似的东西

罗里 - y 乔 - z Pat -u 玛丽 - v

我的蹩脚尝试就像下面这样,但是我尝试过的其他变种也没有,我刚刚开始学习simpleXML而且还没有完全了解它。

foreach($xml->config->popup['name'] as $node => $key){
    //
    echo $node . " - ". $xml->config->popup['$key']['type'] . "<br />";
    }

现在,如果xml结构更好并且弹出元素位于主弹出元素下,我可以使用children()选项循环浏览每个弹出窗口并访问它,但是这个不寻常的格式在XML中工作似乎没有我可以找到互联网上的任何例子,可以告诉我如何在foreach循环中访问它们。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要在popup节点上循环,例如

foreach ($xml->config->popup as $popup) {
    echo $popup['name'], ' - ', $popup['type'], '<br>';
}

演示 - http://codepad.viper-7.com/HElyiA(我还修复了你的XML)