Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi (1 - 3)
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());


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
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


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 12:30