Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Edycja pliku XML
Forum PHP.pl > Forum > PHP
atyll
Witam

Chciałbym zrobić skrypt na stronie, który dodaje nowy wpis do pliku XML

Chodzi o dodanie:

  1. <link>
  2. <title>$Title</title>
  3. <url>http://danera.no-ip.org/characters.php?title=$title</url>
  4. </link>


$Title = zmienna

Aktualny plik XML:
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <pages>
  3. <link>
  4. <title>Test</title>
  5. <url>http://danera.no-ip.org/characters.php?title=Test</url>
  6. </link>
  7. <link>
  8. <title>Test2</title>
  9. <url>http://danera.no-ip.org/characters.php?title=Test2</url>
  10. </link>
  11. </pages>


Ktoś da radę pomóc?

Próbowałem, lecz nie chodzi:
  1. <?php
  2. $title = "Test";
  3.  
  4. $doc = new DOMDocument();
  5. $doc->formatOutput = true;
  6.  
  7. $r = $doc->createElement( "links" );
  8. $doc->appendChild( $r );
  9.  
  10. $name = $doc->createElement( "title" );
  11. $name->appendChild(
  12. $doc->createTextNode( $title )
  13. );
  14. $b->appendChild( $name );
  15.  
  16. $url = $doc->createElement( "url" );
  17. $url->appendChild(
  18. $doc->createTextNode( "http://danera.no-ip.org/characters.php?title=" )
  19. );
  20. $b->appendChild( $url );
  21.  
  22.  
  23. $r->appendChild( $b );
  24.  
  25.  
  26. echo $doc->saveXML();
  27. $doc->save("write.xml")
  28. ?>
Thorang Hoog
Twój skrypt nigdy nie dopisywał danych do pliku tylko tworzył nowe.
Nie podałeś kodowania znaków dla pliku wyjściowego.
Ostatnie, nie stworzyłeś elementu $r a chciałeś go wykorzystać.

To są zmiany jakie poczyniłem:

  1. <?php
  2. $title = "Test";
  3.  
  4. $doc = new DOMDocument('1.0' , 'ISO-8859-1');
  5. $doc->formatOutput = true;
  6. if ( file_exists ( "write.xml" ) )
  7. {
  8. $doc->load("write.xml");
  9. $r = $doc->getElementsByTagName('links');
  10. $r = $r->item(0);
  11. }
  12. else
  13. {
  14. $r = $doc->createElement( "links" );
  15. $doc->appendChild( $r );
  16. }
  17.  
  18. $name = $doc->createElement( "title" );
  19. $name->appendChild(
  20. $doc->createTextNode( $title )
  21. );
  22. $b = $doc->createElement( "link" );
  23. $b->appendChild( $name );
  24.  
  25. $url = $doc->createElement( "url" );
  26. $url->appendChild(
  27. $doc->createTextNode( "http://danera.no-ip.org/characters.php?title=" )
  28. );
  29. $b->appendChild( $url );
  30.  
  31.  
  32. $r->appendChild( $b );
  33.  
  34.  
  35. echo $doc->saveXML();
  36. $doc->save("write.xml")
  37. ?>
atyll
Ten kod działa, ale chodziło mi o coś takiego.

Plik już istnieje
Przy rejestracji, dodaje do pliku xml:
<link>
<title>Costam</title>
<url>Costam2</url>
</link>
Thorang Hoog
Trudny z ciebie człowiek ;P

Pozamieniaj:

zamiast
  1. $doc->createTextNode( $title );

wpisz
  1. $doc->createTextNode( $costam );


i zamiast
  1. $doc->createTextNode( "http://danera.no-ip.org/characters.php?title=" );

wpisz
  1. $doc->createTextNode( $costam2 );


linia
  1. $title = "Test";

jest niepotrzebna
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.