htmlpagedom icon indicating copy to clipboard operation
htmlpagedom copied to clipboard

Added getNodes()

Open shtse8 opened this issue 8 years ago • 1 comments

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();

shtse8 avatar Feb 28 '17 11:02 shtse8

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.

glensc avatar Jun 11 '18 09:06 glensc