我正在从一个返回分页XML的API中读取。API输出的基本格式为:
<candidates.list page="1" next_page="yes">
<candidate />
<candidate />
<candidate />
</candidates.list>
我的代码是这样的:
while (TRUE) {
$xml_str = file_get_contents($dest)
$xml = new SimpleXMLElement($xml_str);
// What should I do to append subsequent pages to my first page's XML?
if ( $xml['next_page'] == 'yes' ) {
$dest = $new_destination; // I figure out the next page's API query here
}
else {
break;
}
}
return $xml;
祝你国庆节快乐,谢谢!
发布于 2010-07-05 01:29:30
SimpleXML是不适合这项工作的工具。SimpleXML实际上并不是为添加新节点或执行任何类型的操作而设计的。我切换到使用DOMDocument,并且能够很快地使用appendChild函数创建一个解决方案。
发布于 2010-07-05 00:55:53
我会将下一页的候选项附加到您的$xml
中。您已经将XML解析为SimpleXMLElement
。或者构建您自己的SimpleXMLElement
候选对象数组,如果您只关心这些的话。
顺便说一句,while(1)
不是一种好的形式。您可以更改逻辑或使用do/while()
循环。
第四次回归快乐!
发布于 2010-07-16 09:47:40
是的,您必须使用基于DOM的解决方案,或者使用(例如) SAX方法动态构建不同的数据结构。DOM不能很好地扩展以获得高吞吐量(对象内存占用非常大),因此如果这是您正在执行的唯一操作,如果需要扩展,则可能需要考虑SAX。
https://stackoverflow.com/questions/3175433
复制相似问题