使用php的SimpleXML访问数组内对象中的数据

时间:2011-05-24 06:01:15

标签: php xml simplexml

这与我之前的问题有关:Trying to read XML nodes using PHP DOM

我有一个数组,其元素看起来像这样:

[rpc.pingomatic.com] => Array
        (
            [http://www.example.com] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                            [name] => flerror
                            [value] => SimpleXMLElement Object
                                (
                                    [boolean] => 0
                                )

                        )

                    [1] => SimpleXMLElement Object
                        (
                            [name] => message
                            [value] => SimpleXMLElement Object
                                (
                                    [string] => Pings being forwarded to 11 services!
                                )

                        )
            )

我想检索数据并最终以这种方式显示:
flerror:0
来自目录的消息:Ping被转发到11个服务

我可以使用它来检索必要的字段:

echo $response->name;                   
echo $response->value->boolean;
echo $response->value->string;

但是,我使用foreach循环遍历数组,并不是所有元素都有名为boolean和string的字段。它们可能有标志而不是布尔等等。

是否有使用相同foreach循环检索必要数据的通用方法?

2 个答案:

答案 0 :(得分:0)

您可以使用此方法PHP: SimpleXMLElement::xpath - Manual

答案 1 :(得分:0)

我认为处理我的问题的最佳方法是使用  isset($response->value->boolean)isset($response->value->string)确定值的类型并将其回显。