Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmiana nazwy gałęzi XML
Forum PHP.pl > Forum > XML, AJAX
Seraph
Witam,
próbuję zmienić za pomocą DOM nazwy gałęzi xml, poniżej kod.
  1. <?php
  2. $id = 0;
  3. foreach($dane as $pod)
  4. {
  5. $male = $xml->getElementsByTagName($pod)->item(0);
  6. $newChild = $xml->createElement($nowe_nazwy[$id]);
  7. $duze->replaceChild($newChild,$male);
  8. $textNode = $xml->createTextNode('newNode');
  9. $newChild->appendChild($textNode);
  10.  
  11. $id++;
  12. }
  13. }
  14. ?>



Jak widać próbowałem to zrobić za pomocą replaceChild, problem w tym, że wtedy nadpisuje mi całą zawartość gałęzi. Jak inaczej mogę rozwiązać problem?
yaotzin
  1. <?php
  2. $male = $xml->getElementsByTagName($pod)->item(0);
  3. $newChild = $xml->createElement($nowe_nazwy[$id]);
  4. $duze->replaceChild($newChild,$male);
  5. $textNode = $xml->createTextNode('newNode');
  6. $newChild->appendChild($textNode);
  7. ?>


nic dizwnego w powyższym kodzie szukasz elementu nadrzędnego
następnie tworzysz nowy
nakazujesz zamianę starego z nowym
tworzysz wpis do nowego elementu
i dodajesz go do drzewa
więc usuwasz jednocześnie tworząc nowy element z nową zawartością. Zrób tak żeby w tym momencie $xml->createTextNode('newNode'); dodawał ci starą zawartość pomiędzy nowe tagi.

i sprawdź jeszcze tą funkcję, lecz nie pamiętam dokładnie czy ona działa tak jak ci jest to porzebne DomNode->set_name() jest 1 w nocy i nie chce mi się sprawdzać.
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.