我有以下对象:
object(SimpleXMLElement)#337 (1) { [0]=> string(4) "1001" }
但我似乎无法使用 [0] 甚至不使用 foreach($value as $obj=>$objvalue) 访问它
我究竟做错了什么?
我有以下对象:
object(SimpleXMLElement)#337 (1) { [0]=> string(4) "1001" }
但我似乎无法使用 [0] 甚至不使用 foreach($value as $obj=>$objvalue) 访问它
我究竟做错了什么?
SimpleXMLElement实现Traversable,这意味着您可以使用foreach
它来循环它。
尝试使用
$objectarray = get_object_vars(object(SimpleXMLElement));
通过查看 SimpleXMLElement手册,我找到了这个示例(示例 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;
}