Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FormatOutput nie działa
Forum PHP.pl > Forum > PHP
gcdreak
Witam! Mam problem z właściwością formatOutput clasy domDocument;
Mój kod wygląda tak:
  1. $str ="
  2. <datas>
  3. <books>
  4. <book>
  5. <id>1</id>
  6. <title>PHP Undercover</title>
  7. <author>Wiwit Siswoutomo</author>
  8. </book>
  9. <book>
  10. <id>2</id>
  11. <title>PHP Enterprise</title>
  12. <author>Wiwit Siswoutomo</author>
  13. </book>
  14. </books>
  15. </datas>
  16. ";
  17.  
  18. $dom = new DOMDocument();
  19. $dom->loadXML($str);
  20.  
  21. // $dom settings
  22. $dom->formatOutput = true;
  23. $dom->preserveWhiteSpace = false;
  24.  
  25. // get root element(datas)
  26. $root = $dom->documentElement;
  27.  
  28. //create new book's nodes
  29. $id = $dom->createElement('id');
  30. $id->appendChild($dom->createTextNode('3'));
  31.  
  32. $title = $dom->createElement('title');
  33. $title->appendChild($dom->createTextNode('Kamienie na szaniec'));
  34.  
  35. $author = $dom->createElement('author');
  36. $author->appendChild($dom->createTextNode('Aleksander Kaminski'));
  37.  
  38. // create new book node
  39. $newBook = $dom->createElement('book');
  40. // append childs to new book
  41. $newBook->appendChild($id);
  42. $newBook->appendChild($title);
  43. $newBook->appendChild($author);
  44.  
  45. // get parent for book
  46. $books = $dom->getElementsByTagName('books')->item(0);
  47.  
  48. // add new book to $dom
  49. $books->appendChild($newBook);
  50.  
  51. // display
  52. echo '<xmp>'.$dom->saveXML().'</xmp>';


Niestety nowy węzeł nie jest odpowiednio sformatowany i jest wyświetlany w jednej linii:
Kod
   <pre id="line1"><span class="pi"><?xml version="1.0"?></span>
<<span class="start-tag">datas</span>>
       <<span class="start-tag">books</span>>
        <<span class="start-tag">book</span>>
            <<span class="start-tag">id</span>>1</<span class="end-tag">id</span>>
            <<span class="start-tag">title</span>>PHP Undercover</<span class="end-tag">title</span>>    
            <<span class="start-tag">author</span>>Wiwit Siswoutomo</<span class="end-tag">author</span>>
        </<span class="end-tag">book</span>>
         <<span class="start-tag">book</span>>
</pre><pre id="line10">              <<span class="start-tag">id</span>>2</<span class="end-tag">id</span>>
              <<span class="start-tag">title</span>>PHP Enterprise</<span class="end-tag">title</span>>    
              <<span class="start-tag">author</span>>Wiwit Siswoutomo</<span class="end-tag">author</span>>
         </<span class="end-tag">book</span>>
    <<span class="start-tag">book</span>><<span class="start-tag">id</span>>3</<span class="end-tag">id</span>><<span class="start-tag">title</span>>Kamienie na szaniec</<span class="end-tag">title</span>><<span class="start-tag">author</span>>Aleksander Kaminski</<span class="end-tag">author</span>></<span class="end-tag">book</span>></<span class="end-tag">books</span>>
</<span class="end-tag">datas</span>>
</pre>

Co może być tego przyczyną?
nospor
Cytat
i jest wyświetlany w jednej linii:
no bo wyswietliles to do przegladarki. A przegladarka ignoruje entery i spacje smile.gif

ALbo zapisz to do pliku, albo podejrzyj źrodło, gdy juz wyplujesz to do przeglądarki
gcdreak
To co wkleiłem to jest źródło z przeglądarki, tylko teraz widze, że troche dzidostwa w nim jest. Nalepiej by było jakby ktoś zobaczeł to u siebie. Będe wdzieczny za pomoc
nospor
Hehe, zmien kolejnosc
  1. $dom = new DOMDocument();
  2. $dom->formatOutput = true;
  3. $dom->preserveWhiteSpace = false;
  4. $dom->loadXML($str);

winksmiley.jpg
gcdreak
Dokładnie tu był problem.
Dziękuje za pomoc.
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.