Ich lese eine XML in PHP mit simplexml_load_file
. Beim Versuch, die XML zu laden, wird jedoch eine Liste mit Warnungen angezeigt
Warning: simplexml_load_file() [function.simplexml-load-file]: <project orderno="6" campaign_name="International Relief & Development" project in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: http://..../index.php/site/projects/:15: parser error : xmlParseEntityRef: no name in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: ional Relief & Development" project_id="313" client_name="International Relief & in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: http://..../index.php/site/projects/:15: parser error : xmlParseEntityRef: no name in /home/bluecard1/public_html/test.php on line 3
Wie kann ich diese Warnungen korrigieren?
(XML wird aus URL generiert http://..../index.php/site/projects
und in eine Variable in der Datei test.php geladen. Ich habe keine Schreibrechte für index.php)
@
vorsimplexml_load_file
oder durch Hinzufügen eines Flags unterdrückt werden.simplexml_load_file
Weitere Informationen finden Sie auf der Handbuchseite von. Bitte löschen Sie Ihre Frage. Es handelt sich um ein Duplikat.Antworten:
Das XML ist höchstwahrscheinlich ungültig.
Das Problem könnte das "&" sein
wird das "&" los und ersetzt es durch seine HTML-Code-Version ... probieren Sie es aus.
quelle
Fand das hier ...
quelle
Versuchen Sie zuerst, den HTML-Code mit dieser Funktion zu bereinigen:
Sonderzeichen werden in HTML normalerweise anders dargestellt und können für den Compiler verwirrend sein. Wie
&
wird&
.quelle
htmlspecialchars()
ist die genaue Funktion zum Konvertieren von&, ", <, >
Zeichen in die Elementdaten.htmlspecialchars()
XML verwenden und nicht beschädigen können. Ich habe ein paar Flags ausprobiert und mein XML ist immer noch kaputt.htmlspecialchars
für den Inhalt eines XML-Tags verwenden, nicht für das gesamte XMLIch benutze eine kombinierte Version:
quelle
simplexml_load_file
löstparser error : xmlParseEntityRef
beim Laden der XML-Datei von einer URL einen Analysefehler aus.&
Wert anstelle von&
. Es ist durchaus möglich, dass es andere Fehler gibt, die zu diesem Zeitpunkt nicht offensichtlich sind.simplexml_load_file
Funktion eingespeist wird, aber es sieht so aus, als hätten wir keine Kontrolle darüber, wie das XML erstellt wird.simplexml_load_file
die Verarbeitung einer ungültigen XML-Datei zu erzwingen . Es bleiben uns nicht viele Optionen, außer die XML-Datei selbst zu reparieren.Konvertieren Sie ungültiges XML in gültiges XML. Dies kann mit erfolgen
PHP tidy extension
. Weitere Anweisungen finden Sie unter http://php.net/manual/en/book.tidy.phpWenn Sie sicher sind, dass die Erweiterung vorhanden oder installiert ist, gehen Sie wie folgt vor.
Der Entwickler sollte versuchen, das ungültige XML mit einem gültigen XML (generiert von tidy) zu vergleichen, um festzustellen, dass nach der Verwendung von tidy keine nachteiligen Nebenwirkungen auftreten. Tidy macht einen extrem guten Job, um es richtig zu machen, aber es tut nie weh, es visuell zu sehen und 100% sicher zu sein. In unserem Fall sollte es so einfach sein, $ xml mit $ tidy zu vergleichen.
quelle
Das XML ist ungültig.
CDATA sollte gemäß W3C um alle XML-Sonderzeichen gewickelt werden
quelle
Dies liegt in der Tat daran, dass Zeichen mit den Daten herumspielen. Die Verwendung
htmlentities($yourText)
hat bei mir funktioniert (ich hatte HTML-Code im XML-Dokument). Siehe http://uk3.php.net/htmlentities .quelle
Dies löst mein Problem:
quelle
Wenn Sie dieses Problem mit opencart haben, versuchen Sie es zu bearbeiten
quelle