我正在读取返回分页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;
七月四日快乐,谢谢!!
答案 0 :(得分:0)
我会将下一页的候选人添加到$xml
。您已将XML解析为SimpleXMLElement
。或者构建自己的SimpleXMLElement
个候选对象数组,如果你关心的话。
作为旁注,while(1)
是不好的形式。您可以更改逻辑或使用do/while()
循环。
快乐的第4回!
答案 1 :(得分:0)
SimpleXML是这项工作的错误工具。 SimpleXML不是为添加新节点或真正进行任何操作而设计的。我转而使用DOMDocument,并且很快就能使用appendChild函数创建解决方案。
答案 2 :(得分:0)
是的,您必须使用基于DOM的解决方案或使用(例如)SAX方法动态构建不同的数据结构。 DOM不能很好地扩展以获得高吞吐量(对象内存占用非常大),因此如果这是您正在进行的唯一操作,则可能需要考虑SAX,如果您需要扩展。