从SimpleXMLElement到SimpleXMLIterator

时间:2012-11-08 13:59:57

标签: php xml simplexml

我有一个很好的函数将一个(简单的,duh)xml转换为一个数组,为此它使用了SimpleXmlIterator类。

它工作得很好,但我想让它不仅接受xml源字符串或SimpleXmlIterator个对象,而且SimpleXmlElement也是因为我使用它们的方式更常见的是迭代器(我实际上只使用那个函数。)

到目前为止我做的是

$iter = new SimpleXmlIterator($xml->asXML());
但对我而言,这就像穿过东京从巴黎到伦敦。毕竟,SimpleXmlIterator扩展了SimpleXmlElement,那么有更好的方法将SimpleXmlElement对象转换为SimpleXmlIterator吗?

2 个答案:

答案 0 :(得分:1)

您可以通过在http://php.net/manual/de/function.simplexml-load-file.php

中设置第二个参数来开始使用SimpleXMLIterator
$yourSimpleXMLIteratorObject = simplexml_load_file("your_file.xml","SimpleXMLIterator");

生成的所有对象,现在是SimpleXMLIterator-Objects

答案 1 :(得分:-1)

如果您打算将所有XML解析为SimpleXMLIterator个对象,为什么不打算这样做?

据我所知,没有一种简单的方法可以将SimpleXMLElement转换为SimpleXMLIterator。这些类只是包装一个libxml资源,所以 认为有一种方法可以获取资源句柄并将其传递给SimpleXML*构造函数,但是如果它对我来说是新闻。