Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP] Formatowanie pliku xml
Forum PHP.pl > Forum > Przedszkole
q3d
Tworze plik XML z wykorzystaniem klasy DOMDocument. Ponieważ dokumentacja dotycząca tworzonego pliku XML wymaga by każdy tag znajdował się w nowej linii plik musi być sformatowany.

  1. $dom = new DOMDocument('1.0', 'utf-8');
  2. $dom->formatOutput = true;


Problem polega na tym, że część dokumentu XML, która jest generowana wewnątrz pętli nie jest poprawnie sformatowana, tzn tagi i wartości znajdują się w jednej linii. Tagi wstawiane poza pętlą formatowane są poprawnie: każdy tag znajduje się w nowej linii, a poziomy zagnieżdżenia różnią się wcięciami.
Fifi209
Zgaduję masz coś z pomieszane w pętli! Zgadłem?

A tak serio może daj listing jakiś ?
q3d
W pętli nie mam nic namieszane winksmiley.jpg

Proszę bardzo oto fragment listingu:
  1. // ------ Generowanie pliku xml ------- //
  2. // nalowek
  3. $dom = new DOMDocument('1.0', 'utf-8');
  4. $dom->formatOutput = true;
  5.  
  6. $dane = $dom->createElement('dane');
  7. $dom->appendChild($dane);
  8.  
  9. $info = $dom->createElement('info');
  10. $dane->appendChild($info);
  11. $stat_ogl = $dom->createElement('stat_ogl');
  12. $info->appendChild($stat_ogl);
  13.  
  14. $all = $dom->createElement('all', $count_data);
  15. $stat_ogl->appendChild($all);
  16.  
  17. $delete = $dom->createElement('delete', $count_remove);
  18. $stat_ogl->appendChild($delete);
  19.  
  20. $actions = $dom->createElement('actions');
  21. $dane->appendChild($actions);
  22. $eksport = $dom->createElement('eksport', 'inc');
  23. $actions->appendChild($eksport);
  24.  
  25. $firma = $dom->createElement('firma');
  26. $dane->appendChild($firma);
  27.  
  28. $kod_offline = $dom->createElement('kod_offline', 'abc');
  29. $firma->appendChild($kod_offline);
  30.  
  31. $katalog = $dom->createElement('katalog', 'test');
  32. $firma->appendChild($katalog);
  33.  
  34. foreach ($offers['DataStream'] as $offer) {
  35. $record = $dom->createElement('record', '');
  36. $dane->appendChild($record);
  37. $action = $dom->createElement('action', 'replace');
  38. $record->appendChild($action);
  39.  
  40. // zamienic zgodnie ze slownikiem
  41. $id_rubryka = $dom->createElement('id_rubryka', dic($offer['id_typ']));
  42. $record->appendChild($id_rubryka);
  43. }
  44.  
  45. $string = $dom->saveXML();


Plik XML przeglądam w edytorze PSPad by sprawdzić jak jest sformatowany i tagi generowane wewnątrz pętli pokazuje w jednej linii.
Fifi209
Cytat(q3d @ 10.08.2009, 15:52:15 ) *
W pętli nie mam nic namieszane winksmiley.jpg


Pisałeś o pętli więc dlatego takie przypuszczenia padły

Cytat(q3d @ 10.08.2009, 15:52:15 ) *
Plik XML przeglądam w edytorze PSPad by sprawdzić jak jest sformatowany i tagi generowane wewnątrz pętli pokazuje w jednej linii.


Hmm, chyba nie potrafię odpowiedzieć na pytanie. Mogę zaproponować tylko abyś spróbował skorzystać z simplexml. (lecz nie mam pojęcia czy to coś da)
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.