robię pierwszy raz xmla, dlatego nie spodziewałem się braku błędów i niedoróbek. Jest on prosty, ale:
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?>'); $xml -> addChild('Kompilacja', date('Y-m-d H:i:s')); $row = 1; foreach ($articles as $a) { $product = $xml -> addChild('Produkt'); $product -> addChild('GrupaMateriałowa', $_POST['grupa'.$row]); $product -> addChild('MarkaProduktu', $_POST['marka'.$row]); $product -> addChild('Dostawca', $_POST['dostawca'.$row]); $product -> addChild('MateriałPLU', $_POST['plu'.$row]); $product -> addChild('KodEAN/UPC', $_POST['ean'.$row]); $product -> addChild('NumerKartotekiMG', $_POST['mg'.$row]); $product -> addChild('Model', $_POST['model'.$row]); $product -> addChild('Opis', $_POST['opis'.$row]); $product -> addChild('StatusLokalizacji', $_POST['lokalizacja'.$row]); $product -> addChild('StatusDostępności', $_POST['dostepnosc'.$row]); $product -> addChild('AktywnyOleOle', $_POST['aktywny'.$row]); $row++; }
linia 1 to linia 37 w pliku. Odpowiedz jest taka:
Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Start tag expected, '<' not found in /home/smusic/ftp/oleole/php/update.php on line 37 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.
jesli wpiszemy tagi od razu, plik sie utworzy bezp roblemu, tzn z problemem, bo zeby sie utworzyl poprawnie trzeba dac dodatkowo zamiast
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><cokolwiek></cokolwiek>');
to
$xml -> asXML('plik');
$xml -> saveXML('plik.);
teraz wygląda to tak:
$newFileName = 'Lista Asortymentowa GREEN HOUSE d. '.date('Y-m-d').'.xml'; $xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><GreenHouse></GreenHouse>'); $xml -> addChild('Kompilacja', date('Y-m-d H:i:s')); $row = 1; foreach ($articles as $a) { $product = $xml -> addChild('Produkt'); $product -> addChild('GrupaMateriałowa', $_POST['grupa'.$row]); $product -> addChild('MarkaProduktu', $_POST['marka'.$row]); $product -> addChild('Dostawca', $_POST['dostawca'.$row]); $product -> addChild('MateriałPLU', $_POST['plu'.$row]); $product -> addChild('KodEAN', $_POST['ean'.$row]); $product -> addChild('NumerKartotekiMG', $_POST['mg'.$row]); $product -> addChild('Model', $_POST['model'.$row]); $product -> addChild('Opis', $_POST['opis'.$row]); $product -> addChild('StatusLokalizacji', $_POST['lokalizacja'.$row]); $product -> addChild('StatusDostępności', $_POST['dostepnosc'.$row]); $product -> addChild('AktywnyOleOle', $_POST['aktywny'.$row]); $row++; } $xml -> saveXML('./../xml/'.$newFileName); echo "<script>document.location.href = './../xml/".$newFileName."';</script>"; exit;
tyle ze pliku nie "beautifuje"
