Autor | Zpráva | ||
---|---|---|---|
kopi Profil |
Zdravím, mám problém s xml feedem pomocí php a mysql. mám udělaný feed a při jedné položce to funguje, při více položkách dostávám chybu:
"This page contains the following errors: error on line 2 at column 1: Extra content at the end of the document Below is a rendering of the page up to the first error." Myslel jsem, že kdyby byla chyba někde v headers apod, tak by to nefungovalo vůbec a dostával bych i php error. <? include('../includes/db.php'); //Create element a appendChild() header('Content-type: application/xml'); $xml = new DOMDocument("1.0", "UTF-8"); $xml->formatOutput=true; $leasing = $xml->createElement('leasing'); $xml->appendChild($leasing); $xmlns = $xml->createAttribute('xmlns'); $leasing->appendChild($xmlns); $value = $xml->createTextNode('urn:x-driveto.cz:leasing:feed:v1'); $xmlns->appendChild($value); $carOffers = $xml->createElement("carOffers"); $leasing->appendChild($carOffers); // dotaz na databázi $query = "..."; $result = mysqli_query($conn, $query); while($row=mysqli_fetch_assoc($result)) { // ------------------------ začátek feedu ----------------------------// $carOffer=$xml->createElement("carOffer"); $carOffers->appendChild($carOffer); $partnerCarOfferId=$xml->createElement("partnerCarOfferId",$row['id_auto']); $carOffer->appendChild($partnerCarOfferId); $car=$xml->createElement("car"); $carOffer->appendChild($car); $carSpecification=$xml->createElement("carSpecification"); $car->appendChild($carSpecification); $make=$xml->createElement("make",$row['nazev']); $carSpecification->appendChild($make); $modelLine=$xml->createElement("modelLine",$row['model']); $carSpecification->appendChild($modelLine); $modelLineYear=$xml->createElement("modelLineYear",$row['rok_modelu']); $carSpecification->appendChild($modelLineYear); $modelLineMonth=$xml->createElement("modelLineMonth","1"); $carSpecification->appendChild($modelLineMonth); $trim=$xml->createElement("trim",$row['vybava']); $carSpecification->appendChild($trim); $engineVolume=$xml->createElement("engineVolume",$engineVolume); $carSpecification->appendChild($engineVolume); $engineSuffix=$xml->createElement("engineSuffix",$engineSuffix); $carSpecification->appendChild($engineSuffix); $enginePowerKw=$xml->createElement("enginePowerKw",$vykonKW); $carSpecification->appendChild($enginePowerKw); $engineType=$xml->createElement("engineType",$engineType); $carSpecification->appendChild($engineType); $is4x4=$xml->createElement("is4x4",$is4x4); $carSpecification->appendChild($is4x4); $isAutomaticTransmission=$xml->createElement("isAutomaticTransmission",$isAutomaticTransmission); $carSpecification->appendChild($isAutomaticTransmission); } ob_clean(); //Clean (erase) the output buffer echo $xml->saveXML(); ?> |
||
Tomášeek Profil |
#2 · Zasláno: 28. 1. 2019, 12:11:01
kopi:
A to vygenerovane XML vypada jak? |
||
kopi Profil |
#3 · Zasláno: 28. 1. 2019, 12:32:05
Pro jeden záznam vypadá správně, pro více záznamů to hodí jen error a bílou stránku.
|
||
Tomášeek Profil |
#4 · Zasláno: 28. 1. 2019, 13:55:46
kopi:
Tak znovu. Jak to vygenerované XML vypadá? To znamená vložit sem to XML s více než jedním produktem, aby se v něm dala najít chyba. |
||
kopi Profil |
#5 · Zasláno: 28. 1. 2019, 13:58:59
A mohl bys mi poradit, jak ho mám zobrazit? Když nactu URL, tak se nic nezobrazí.
|
||
Tomášeek Profil |
#6 · Zasláno: 28. 1. 2019, 14:03:53
kopi:
To netuším. Možná si dumpnout $xml a zkusit to tam někde najít (před tím saveXML)? Případně nějak jinak, i práce s DOMem a XML musí mít způsob, jaký lze debugovat.
|
||
Kajman Profil |
#7 · Zasláno: 28. 1. 2019, 14:27:04
Pro debug si můžete vracet content-type text/plain, pokud si výsledek z url neumíte uložit či zobrazit ve vývojářské konzoli prohlížeče.
Pro debug si nečistěte output buffer a povolte varovné hlášky, jinak byste byl asi varován, že na řádku 60 používáte neinicializovanou proměnnou. Která se navíc použije v dalším průchodu. $engineVolume=$xml->createElement("engineVolume",$engineVolume); |
||
kopi Profil |
#8 · Zasláno: 28. 1. 2019, 18:43:33
Moc děkuju. Když jsem dal content-type text/plain, tak se mi zobrazila jasně vypsaná chyba a na jakém řádku, pak už to bylo lehké opravit. Moc děkuju.
|
||
Časová prodleva: 6 let
|
0