Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie komentarzy w XML poprzez DOM
Forum PHP.pl > Forum > PHP > Object-oriented programming
Maciekkk
Witam,

1.
Stworzenie komentarza w dokumencie XML za pomocą klas DOM jest banalnie proste:
  1. $comment = $element->appendChild(new DOMComment('root comment'));

Ale jak korzystając dalej z funkcjonalności DOM usunąć/zamienić dany komentarz lub wszystkie komentarze?
W dokumentacji jest tylko tworzenie... a może xpatch-em?

2.
Formatowanie dokumentu XML.
Gdy wczytuję gotowy plik XML i dodaję nowe tagi do dokumentu układają się one jeden za drugim bez formatowania.
W momencie gdy z palca preparuję dokument i wywalę wszystkie odstępy i nowe linijki to za pierwszym razem dokument tworzy się idealny.
Przy kolejnym wczytaniu "idealnego dokumentu" dopisuje bez formatowania.
Jak go zmusić by przy każdym zapisie pliku formatował go poprawnie?

  1. $xml = new DOMDocument;
  2. $xml->validateOnParse = true;
  3. $xml->preserverWhiteSpace = true;
  4. $xml->formatOutput = true;
  5. $xml->load($plik_xml);
  6. ...
  7. //dodawanie tagów itp.
  8. ...
  9. $xml->save($plik_xml);


LBO
ad. 1 Wskazówka: Każdy węzeł w XML ma swój typ. Tak samo jak komentarz.
ad.2 Czytaj komentarze w dokumentacji.
Maciekkk
Dzięki, wskazówki pomogły.
Dla innych, którzy również poszukują rozwiązania:

1.
Warunek sprawdzający typ węzła:
  1. nodeType==XML_COMMENT_NODE


2.
Ważne: preserveWhiteSpace = false oraz formatOutput po załadowaniu pliku.

  1. $dom->preserveWhiteSpace = false;
  2. $dom->load ("plik.xml");
  3. $dom->formatOutput = true;
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.