Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][xml] Edycja pliku XML w php
Forum PHP.pl > Forum > XML, AJAX
krzanik
Witam
Piszę skrypt do obsługi galerii fotografii. Galeria jest w pliku XML. Mam już zrobione wyświetlanie i obsługę galerii od strony użytkownika - przeglądacza stron www smile.gif.
Teraz muszę zrobić panel administracyjny - który będzie zapisywał dane do pliku XML.
Mój problem polega na tym, że nie potrafię stworzyć w odpowiednim miejscu (gałęzi) nowego węzła z danymi.
Testowy skrypt wygląda tak:

  1. <?php
  2.  
  3. $xml = '<?xml version="1.0" encoding="utf-8" ?><contact><test> </test></contact>';
  4.  
  5. // Load the XML
  6. $DOM = new DOMDocument();
  7. $DOM -> loadXML($xml);
  8. $DOM -> strictErrorChecking = true;
  9. $DOM -> validateOnParse = true;
  10.  
  11. $rootXML = $DOM -> documentElement;
  12. $item = $DOM -> createElement('name', 'Joe');
  13. $rootXML -> appendChild($item);
  14.  
  15.  
  16. // Display
  17. echo $DOM -> saveXML();
  18.  
  19. //echo "Koniec pliku :)";
  20.  
  21. ?>


Wpisuje on do dokumentu XML węzeł <name> w którym znajduje się wartość Joe. Wygenerowany wynik wygląda tak:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <contact>
  3.  <test> </test>
  4.  <name>Joe</name>
  5. </contact>


Mnie chodzi o to żeby węzeł <name> znajdował się wewnątrz <test>, a wynik wyglądał następująco:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <contact>
  3.  <test>
  4.    <name>Joe</name>
  5.  </test>
  6. </contact>


Próbowałem już różnych sposobów, czytałem manuale, ale jakoś na razie nie wpadłem na rozwiązanie tego problemu sad.gif.
Pozdrawiam
nospor
no ba. skoro ma byc w tekst to musisz przypisac go to tekst, a nie tak jak ty to robisz do roota.
Musisz najperw pobrac tekst: getElementsByTagName('tekst').item(0) i do tekst podpiac to co chcesz.

http://pl.php.net/manual/pl/function.dom-d...tsbytagname.php
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.