Парсинг HTML
Есть html вида:
<div>
<h2><a href="...">text1</a></h2>
<div>
<p>text2</p>
<p>
<i>text3</i>
<i>text4</i>
</p>
</div>
<div>
Код phpQuery:
// выше заселектили самый первый div
foreach (pq($dom)->find('*') as $d) {
PR(pq($d)->html());
}
На выходе:
<a href="...">text1</a>
---
text1
---
<p>text2</p>
<p>
<i>text3</i>
<i>text4</i>
</p>
---
text2
<i>text3</i>
<i>text4</i>
---
text3
text4
Т.е. phpQuery рекурсивно лезет во все теги, выдавая мне одну и туже строку с текстом по несколько раз.
Нужно, чтобы на выходе было только:
<a href="...">text1</a>
---
<p>text2</p>
<p>
<i>text3</i>
<i>text4</i>
</p>
Т.е. чтобы он не выдавал мне всё в рекурсии, а проходился только по первым тегам в диве.
Источник: Stack Overflow на русском