php对象,如何访问simplexmlelement

时间:2012-07-12 08:37:46

标签: php

我有以下对象:

object(SimpleXMLElement)#337 (1) { [0]=> string(4) "1001" }

但我似乎无法使用[0]访问它,甚至不使用foreach($ value as $ obj => $ objvalue)

我做错了什么?

3 个答案:

答案 0 :(得分:1)

SimpleXMLElement实现Traversable,这意味着您可以使用foreach来循环它。

答案 1 :(得分:0)

尝试使用

$objectarray = get_object_vars(object(SimpleXMLElement));

答案 2 :(得分:0)

通过查看SimpleXMLElement manual,我找到了这个示例(示例XML文件位于链接页面的顶部):

$movies = new SimpleXMLElement($xmlstr);

/* For each <character> node, we echo a separate <name>. */
foreach ($movies->movie->characters->character as $character) {
   echo $character->name, ' played by ', $character->actor, PHP_EOL;
}

我发现这个函数将XML对象转换为数组,也许这更容易使用?:

    function toArray($xml) { //$xml is of type SimpleXMLElement 
        $array = json_decode(json_encode($xml), TRUE);

        foreach ( array_slice($array, 0) as $key => $value ) {
            if ( empty($value) ) $array[$key] = NULL;
            elseif ( is_array($value) ) $array[$key] = toArray($value);
        }

        return $array;
    }