Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][DOM] DOMDocument, generowanie fragmentu
Forum PHP.pl > Forum > PHP
VegetaSSJ
Witam.

Używam obiektów DOM (DOMDocument, DOMNode, DOMElement ...) do modyfikacji faragmentów strony html. Wygląda to tak że do DOMDocument wczytuję kawałek htmla (nie cały dokument tylko fragment, bez znaczników html, head, i body), potem wyszukuję za pomocą xpath element który mnie interesuje i go modyfikuję. Na koniec chcę dostać zmodyfikowany kod jako string html. Niestey saveHTML wypluwa kod opatrzony w znaczniki html, body, czyli tak jakby uzupełniony fragment kodu który wczytałem. Czy znacie może jakąś możliwość wygenerowania kodu tylko dla wybranego fragmentu (najlepiej jaby dla każdego obiektu DOM było saveHTML(), np DOMFragment->saveHTML) ... Może macie jakieś inne sposoby na to o czym piszę, z góry zaznaczam że pregmatche i inne wyrażenia regularne odpadają.
skowron-line
saveHTML zwraca stringa więc możesz użyć najprostszego rozwiązania jakim jest
  1. str_replace(array('<html>','</html>','<body>','</body>'), '', $dom->saveHTML());
zegarek84
  1. $doc = new DOMDocument();
  2. $doc->loadHTML(
  3. '<html><body><i>Test</i><br><div>Text</div><div class="gn">dfas<div>bbbbbb</div> sd as fsda<b>asdf<i>sdfasd</i></b></div></body></html>');
  4. $div=$doc->getElementsByTagName('div')->item(1);
  5. echo $doc->saveXML($div);

DOMDocument::saveXML
Example #1 Saving a DOM tree into a string
VegetaSSJ
Cytat(zegarek84 @ 17.02.2010, 14:30:08 ) *


omg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.