如何重建分页的XML文档?

时间:2010-07-04 16:47:28

标签: php xml simplexml

我正在读取返回分页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;

七月四日快乐,谢谢!!

3 个答案:

答案 0 :(得分:0)

我会将下一页的候选人添加到$xml。您已将XML解析为SimpleXMLElement。或者构建自己的SimpleXMLElement个候选对象数组,如果你关心的话。

作为旁注,while(1)是不好的形式。您可以更改逻辑或使用do/while()循环。

快乐的第4回!

答案 1 :(得分:0)

SimpleXML是这项工作的错误工具。 SimpleXML不是为添加新节点或真正进行任何操作而设计的。我转而使用DOMDocument,并且很快就能使用appendChild函数创建解决方案。

答案 2 :(得分:0)

是的,您必须使用基于DOM的解决方案或使用(例如)SAX方法动态构建不同的数据结构。 DOM不能很好地扩展以获得高吞吐量(对象内存占用非常大),因此如果这是您正在进行的唯一操作,则可能需要考虑SAX,如果您需要扩展。