Skip to content
Advertisement

Creating DOMDocument in PHP

while ($row = $result->fetch()) {
  $dom = new DOMDocument;
  $element = $dom->createElement('div');
  $dom->appendChild($element);
  echo $dom->saveXML();
}

When I execute this code multiple times, something like this happens:

<div>
  <div>
    <div>
    </div>
  </div>
</div>

but I want the divs in a row like this:

<div></div>
<div></div>
<div></div>

for some reasons it is working with <button>.

Advertisement

Answer

Your code needs some modification:

  1. It’s better to create $dom and echo results outside the while loop. Because in your example you need just one DOM object.
  2. When trying to view the result using saveHTML instead of saveXML

There’s lots of example here: https://www.php.net/manual/en/class.domdocument.php

$dom = new DOMDocument();  
while ($row = $result->fetch()) {
  $element = $dom->createElement('div');
  $dom->appendChild($element);
}
echo $dom->saveHTML();
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement