0

I want to use Zend\Dom to get all html elements in a div , but it just extracts the it's text and strips html tags

HTML :

<div class="test">
<div id="div1">Text1</div>
<div id="div2">Text2</div>
</div>

I want to get this :

<div id="div1">Text1</div>
<div id="div2">Text2</div>

but Zend\Dom returns this :

Text1
Text2

This is the code :

$dom = new Query($html);
$results = $dom->execute('.test');
Dante
  • 101
  • 12

2 Answers2

1

You can have html value of results like this :

foreach ($results as $result)
{
  $results->getDocument()->saveHTML($result);
}
Mostafa Solati
  • 1,235
  • 2
  • 13
  • 33
0

Each method in the Zend/Dom class, returns Zend/Dom/NodeList Object .

You should use getDocument Function to get the complete DOM .

use Zend\Dom\Query;
$dom = new Query($html);
$results = $dom->execute('.test');
echo $results->getDocument();  

Reference : -

Zend/Dom/NodeList Documentation of Zend Framework 2

Aravind.HU
  • 9,194
  • 5
  • 38
  • 50