I am trying to read an XML file in a Symfony project, to send the data to the front end.
As the XML file is huge, I am using a combination of XMLReader and SimpleXML (as suggested in this thread: How to use XMLReader in PHP?).
Here is my code for the XML Reader:
  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;  }      My aim is to send the data little by little, as they will be displayed in a table with pagination. Which means the first time, it will send 20 results, and then when we click page 2, it will request the next 20 results.
Is there a way to do that?
No comments:
Post a Comment