2010-12-28 5 views
0

Ich habe ein Beispiel-XML, das ich als Teil eines Datenfeeds erhalte, das ich gerne mit der DomDocument Class bearbeiten könnte; Der XML-Feed verwendet jedoch benutzerdefinierte Entitäten, die Probleme zu verursachen scheinen. Das XML spezifiziert einen Doctype unter Verwendung der relevanten Verarbeitungsanweisung, die den Speicherort der DTD-Dateien angibt, aber es scheint, dass es entweder ignoriert wird oder nicht abgerufen wird, da es als ein HTTP-URI spezifiziert ist.Wie kann ich ein XML-Dokument laden, das auf eine DTD verweist, die benutzerdefinierte Entitäten definiert?

Gibt es eine Möglichkeit, die XML zu laden und die Entitäten zu ignorieren, oder muss ich wirklich eine Reihe von preg_replace Anrufe zuerst tun?

Antwort

0

Ich habe es nicht getestet, aber this article scheint die Syntax für ein DomDocument-Objekt über Ihre DTD zu decken. Es sieht so aus, als ob Sie ein Objekt

new DOMImplementation(); 

verwenden müssen, um Ihr DomDocument-Objekt zu erstellen.

+0

Das scheint mehr über das Erstellen von XML zu sein, nicht das Lesen von XML von woanders? –

+0

Es scheint auch, PHP5 zu erfordern, und die Installation, mit der ich arbeite, muss mit 4.4 –

+0

@Rowland kompatibel sein: Sie würden Ihre XML-Datei als Zeichenfolge lesen und an das DomDocument-Objekt füttern, das Sie im verknüpften Beispiel erstellt haben und dann mit DomDocument analysieren. –

Verwandte Themen