Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][XML] Zapisywanie xml'a
shpaque
post 13.05.2018, 22:28:03
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


Witam,
robię pierwszy raz xmla, dlatego nie spodziewałem się braku błędów i niedoróbek. Jest on prosty, ale:

  1. $xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?>');
  2. $xml -> addChild('Kompilacja', date('Y-m-d H:i:s'));
  3.  
  4. $row = 1;
  5. foreach ($articles as $a)
  6. {
  7. $product = $xml -> addChild('Produkt');
  8. $product -> addChild('GrupaMateriałowa', $_POST['grupa'.$row]);
  9. $product -> addChild('MarkaProduktu', $_POST['marka'.$row]);
  10. $product -> addChild('Dostawca', $_POST['dostawca'.$row]);
  11. $product -> addChild('MateriałPLU', $_POST['plu'.$row]);
  12. $product -> addChild('KodEAN/UPC', $_POST['ean'.$row]);
  13. $product -> addChild('NumerKartotekiMG', $_POST['mg'.$row]);
  14. $product -> addChild('Model', $_POST['model'.$row]);
  15. $product -> addChild('Opis', $_POST['opis'.$row]);
  16. $product -> addChild('StatusLokalizacji', $_POST['lokalizacja'.$row]);
  17. $product -> addChild('StatusDostępności', $_POST['dostepnosc'.$row]);
  18. $product -> addChild('AktywnyOleOle', $_POST['aktywny'.$row]);
  19. $row++;
  20. }


linia 1 to linia 37 w pliku. Odpowiedz jest taka:

  1. Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Start tag expected, '<' not found in /home/smusic/ftp/oleole/php/update.php on line 37
  2. Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home/smusic/ftp/oleole/php/update.php:37 Stack trace: #0 /home/smusic/ftp/oleole/php/update.php(37): SimpleXMLElement->__construct('<?xml version="...') #1 /home/smusic/ftp/oleole/admin/admin.php(65): include('/home/smusic/ft...') #2 {main} thrown in /home/smusic/ftp/oleole/php/update.php on line 37


#EDIT

znalazłem gdzieś przedziwne rozwiązanie, które o dziwo działa.
  1. $xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><cokolwiek></cokolwiek>');
jesli wpiszemy tagi od razu, plik sie utworzy bezp roblemu, tzn z problemem, bo zeby sie utworzyl poprawnie trzeba dac dodatkowo zamiast
  1. $xml -> asXML('plik');
to
  1. $xml -> saveXML('plik.);


teraz wygląda to tak:

  1. $newFileName = 'Lista Asortymentowa GREEN HOUSE d. '.date('Y-m-d').'.xml';
  2.  
  3. $xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><GreenHouse></GreenHouse>');
  4. $xml -> addChild('Kompilacja', date('Y-m-d H:i:s'));
  5.  
  6. $row = 1;
  7. foreach ($articles as $a)
  8. {
  9. $product = $xml -> addChild('Produkt');
  10. $product -> addChild('GrupaMateriałowa', $_POST['grupa'.$row]);
  11. $product -> addChild('MarkaProduktu', $_POST['marka'.$row]);
  12. $product -> addChild('Dostawca', $_POST['dostawca'.$row]);
  13. $product -> addChild('MateriałPLU', $_POST['plu'.$row]);
  14. $product -> addChild('KodEAN', $_POST['ean'.$row]);
  15. $product -> addChild('NumerKartotekiMG', $_POST['mg'.$row]);
  16. $product -> addChild('Model', $_POST['model'.$row]);
  17. $product -> addChild('Opis', $_POST['opis'.$row]);
  18. $product -> addChild('StatusLokalizacji', $_POST['lokalizacja'.$row]);
  19. $product -> addChild('StatusDostępności', $_POST['dostepnosc'.$row]);
  20. $product -> addChild('AktywnyOleOle', $_POST['aktywny'.$row]);
  21. $row++;
  22. }
  23. $xml -> saveXML('./../xml/'.$newFileName);
  24. echo "<script>document.location.href = './../xml/".$newFileName."';</script>";
  25. exit;


tyle ze pliku nie "beautifuje" smile.gif a dodanie "\n" na koncu kazdego childa nic nei da, bo rozwali strukturę... Chrome wyswietla plik jak powinno czyli w formie drzewa, ale sam plik nie jest zapisany i "uładniony" w formie enterów po każdytm wpisie...
Go to the top of the page
+Quote Post
Pyton_000
post 14.05.2018, 05:20:46
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A na co ci ładny xml?

https://stackoverflow.com/questions/798967/...a-formatted-way
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 18:18