J'ai créé un script qui prend XML à partir d'une URL et met à jour la base de données mysql et analyse les données dans un fichier csv.Analyse XML SimpleXML
Je reçois des chaînes HTML en XML et elles ne devraient pas être là. Comment les supprimer en analysant?
je charger le fichier XML comme ceci:
$xml = simplexml_load_file(utf8_encode($xml_url), 'SimpleXMLElement', LIBXML_NOCDATA);
erreur que je reçois lors de l'exécution du script:
Warning: simplexml_load_file() [function.simplexml-load-file]: http://domain.com/api/get_catalog.php?id=351&user=878&key=b8:1: parser error : Space required after the Public Identifier in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]:^in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: http://domain.com/api/get_catalog.php?id=351&user=878&key=b8:1: parser error : SystemLiteral " or ' expected in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]:^in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: http://domain.com/api/get_catalog.php?id=351&user=878&key=b8:1: parser error : SYSTEM or PUBLIC, the URI is missing in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]:^in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
xml $ not loaded.
Lorsque j'utilise un Firefox et enregistrer XML à partir d'URL sur le disque que je n'ai aucun problème l'analyse juste quand j'essaye de l'obtenir d'URL.
XML semble bien: Une partie du XML:
<?xml version="1.0" encoding="UTF-8"?>
<RecroKatalog>
<viewCustomerDiscount>
<BrojArtikla>10214</BrojArtikla>
<Naziv>Eksterno kucište 2.5" S-ATA+IDE HDD, Aluminium, USB 2.0</Naziv>
<NetoPrice>81.8224</NetoPrice>
<Status>Dostupno</Status>
<Opis></Opis>
<dugi_opis>Isporucuje se u SIVOJ boji</dugi_opis>
<Image>http://shop.lost.hr/data/images/big/10.jpg</Image>
<WEB_Grupa>Ladice i eksterna kucišta - OSTALO</WEB_Grupa>
<Akcija>0</Akcija>
<Proizvodjac></Proizvodjac>
<Klasifikacija>PH-25SD-B/VK220</Klasifikacija>
</viewCustomerDiscount>
Parce que ce n'est pas valide xml. –
ressemble à des lignes supplémentaires sont ajoutées à votre XML lorsque vous l'appelez à distance et qui le cause invalide – Wilq
D'abord, vous pouvez utiliser XMLReader :: isValid (void) pour voir si votre document xml est valide ou non. – user1929959