21

有人知道将 SimpleXMLElement 转换为普通 STDClass 对象的快速方法,而无需手动遍历每个分支吗?获取数据后使用普通对象会感觉更好。

4

4 回答 4

72
$my_std_class = json_decode(json_encode($my_simplexmlelement));
$my_assoc_array = json_decode(json_encode($my_simplexmlelement), true);
于 2011-03-19T20:35:41.430 回答
6

我建议考虑使用XMLReader,它很适合提取数据并将其存储为人们希望的任何数据类型,而不是SimpleXML。它对经常使用的文档特别有用(我使用它,扩展为RSSReader,用于 RSS),比预期的要快得多,而且比SimpleXML使用更少的内存。

于 2009-10-18T16:47:37.293 回答
2

另一种方法是:

(object)(array)$my_simplexmlelement

不幸的是,如果你有孩子,他们仍然是 SimpleXMLElement

于 2013-06-12T01:55:40.050 回答
1

我不知道是否有一种方法可以在不迭代的情况下转换对象。我的猜测是你不能。

您可以查看此线程,它向您展示了如何将 SimpleXML 转换为数组,您可以对其进行调整。

于 2009-10-18T12:13:44.487 回答