Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][DOM] DOMDocument, generowanie fragmentu
VegetaSSJ
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 2
Dołączył: 21.10.2006

Ostrzeżenie: (0%)
-----


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ą.
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


saveHTML zwraca stringa więc możesz użyć najprostszego rozwiązania jakim jest
  1. str_replace(array('<html>','</html>','<body>','</body>'), '', $dom->saveHTML());
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
VegetaSSJ
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 2
Dołączył: 21.10.2006

Ostrzeżenie: (0%)
-----


Cytat(zegarek84 @ 17.02.2010, 14:30:08 ) *


omg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 04:55