libxml_use_internal_errors(true); $html = '<html><head><meta charset="UTF-8"/></head><body><div id="CONTAINER">'.content.'</div></body></html>'; $doc = new DOMDocument('1.0', 'utf-8'); $doc->loadHTML($html); $root = $doc->getElementById('CONTAINER'); $childNodes = $root->childNodes;
I teraz w zmiennej $childNodes mam listę dzieci elementu o id 'CONTAINER'. W tej treści są elementy <p>, <blockquote>, <img> i <figure>. W sumie tych elementów jest jakieś 30, ale wg pętli foreach, jest ich tylko 19. Ponieważ DOMDocument twierdzi, że każdy <p> który znajdzie jeden obok drugiego, tworzy jako element #text i teraz, jak mam 5x<p> obok siebie w dokumencie, to w pętli mam je wszystkie jako JEDEN element #text.
Jak to rozwiązać, by faktycznie były to elementy pojedyncze, a nie jak teraz, pogrupowane po typie (jeśli leżą obok siebie w dokumencie)? Potrzebuje dokładnie policzyć elementy, ponieważ muszę w środek wrzucić dodatkowy element, a jak mi oblicza w ten sposób to nie mam prawidłowej ilości elementów.