Php Zend RestController xml响应>多行

Php Zend RestController xml响应>多行,php,zend-framework,Php,Zend Framework,Iam使用Zend RestController以xml格式从数据库输出学生数据。Iam将来自控制器的行数据逐列分配给视图元素 像这样: $this->view->name = $name; $this->view->desc = $desc; <pre> <?php $doc = new DOMDocument(); $doc->formatOutput = true; $root_element = $doc->createElemen

Iam使用Zend RestController以xml格式从数据库输出学生数据。Iam将来自控制器的行数据逐列分配给视图元素

像这样:

$this->view->name = $name;
$this->view->desc = $desc;
<pre>
<?php
$doc = new DOMDocument();
$doc->formatOutput = true;
$root_element = $doc->createElement("Students");
$doc->appendChild($root_element);

$nameElement = $doc->createElement("student");
$nameElement->appendChild($doc->createTextNode($this->name));
$root_element->appendChild($nameElement);

print $doc->saveXML();
?>
但是,如果必须显示多行的数据呢

我的index.xml.phtml中有以下代码,它只提供1行数据:


如何循环结果集数组并将其作为xml多行输出?

好的,我通过使用foreach循环结果集获得了解决方案

对于结果集的每一行,我都将列数据附加到子元素Ex:Name,然后将该子元素附加到根元素Student


最后,超级根元素学生将根元素包含为child。我的意思是,学生包含所有学生数据。

为什么不在for循环中使用$name数组来追加child。因为我希望数据库的每一行都有一个单独的xml根树中的名称,而不是一个xml标记下的所有名称,就像我希望:一个xml根标记学生下一行的名称、描述字段一样,另一个xml根标记下的另一组名称和描述,依此类推,最后所有这些单独的学生标记都必须位于学生根标记下。
{ // using foreach loop
$nameElement = $doc->createElement("Name");
$nameElement->appendChild($doc->createTextNode($this->name)); // add Name to "Student"
$root_element->appendChild($nameElement);
}