我正在尝试读取 Symfony 项目中的 XML 文件,以将数据发送到前端。
由于 XML 文件很大,我正在使用 XMLReader 和 SimpleXML 的组合(如此线程中所建议:如何在 PHP 中使用 XMLReader?)。
这是我的 XML 阅读器代码:
class XMLReader {
private $xmlFile;
private $reader;
public function __construct($xmlFile = null)
{
$this->xmlFile = $xmlFile;
}
public function initReader()
{
$this->reader = new \XMLReader();
$this->reader->open($this->xmlFile);
}
public function getData()
{
$products = array();
$index = 0;
while ($this->reader->read()) {
while ($this->reader->name === 'product') {
$node = new \SimpleXMLElement($this->reader->readOuterXML());
array_push($products, $node);
$index++;
if ($index < 20)
$this->reader->next();
else
break 2;
}
}
return $products;
}
我的目标是一点一点地发送数据,因为它们将显示在带有分页的表格中。也就是说第一次发送20个结果,然后当我们点击第2页时,它会请求接下来的20个结果。
有没有办法做到这一点?