htmlpagedom
htmlpagedom copied to clipboard
Added getNodes()
In original version, if we want to loop all the elements, we have code like this:
use \Wa72\HtmlPageDom\HtmlPageCrawler;
$c = new HtmlPageCrawler('<p>Paragraph 1</p> <p>Paragraph 2</p><p>Paragraph 3</p>');
$c->filter('p')->each(function($element) {
$element->html('hi');
});
echo $c->saveHTML();
Yes, it is very convenient. But if we got lots of global variables, we have to pass it one by one using use.
use \Wa72\HtmlPageDom\HtmlPageCrawler;
$var = 'hi';
$c = new HtmlPageCrawler('<p>Paragraph 1</p> <p>Paragraph 2</p><p>Paragraph 3</p>');
$c->filter('p')->each(function($element) use ($var) {
$element->html($var);
});
echo $c->saveHTML();
or, somethings like:
use \Wa72\HtmlPageDom\HtmlPageCrawler;
$var = 'hi';
$c = new HtmlPageCrawler('<p>Paragraph 1</p> <p>Paragraph 2</p><p>Paragraph 3</p>');
foreach($c->filter('p') as $element) {
(new HtmlPageCrawler($element))->html($var);
};
echo $c->saveHTML();
That's why I created this method for another option. Now, we can code like this:
use \Wa72\HtmlPageDom\HtmlPageCrawler;
$var = 'hi';
$c = new HtmlPageCrawler('<p>Paragraph 1</p> <p>Paragraph 2</p><p>Paragraph 3</p>');
foreach($c->filter('p')->getNodes() as $element) {
$element->html($var);
}
echo $c->saveHTML();
the PRs seems broken because created from @shtse8 master branch, thus changes from https://github.com/wasinger/htmlpagedom/pull/19 and https://github.com/wasinger/htmlpagedom/pull/20 mixed in both pull requests. and perhaps even changes not related to neither of the PRs.