Wie beschleunigt man die Validierung der XML DTD mit PHP?

9

Ich verwende meine XML-Datei mit einer DTD-Datei, die ich lokal habe.

Dafür mache ich:

%Vor%

Und das dauert etwa 30 Sekunden für ein XML mit 1600 Zeilen.

Ist das eine gewöhnliche Zeit? Sollte meiner Meinung nach viel schneller sein?

Wie Sie sehen können, ist die DTD, die ich verwende, lokal auf dem Server.

Irgendeine Idee? Danke.

EDIT: Durch Debuggen und Überprüfen der Ausführungszeit habe ich festgestellt, dass es die gleiche Zeit dauert, wenn mein XML 1600 Zeilen oder 150 Zeilen hat, also ist das Problem nicht die XML-Größe.

    
Miloš 18.02.2014, 16:29
quelle

1 Antwort

2
  

Und das dauert etwa 30 Sekunden für ein XML mit 1600 Zeilen.

Das ist eine ungewöhnlich lange Zeit, und es ist wahrscheinlich aufgrund einer Fehlkonfiguration.

  

Beim Debuggen und Überprüfen der Ausführungszeit ist mir aufgefallen, dass es genauso lange dauert, wenn mein XML-Code 1600 Zeilen oder 150 Zeilen hat. Das Problem ist also nicht die XML-Größe.

Für ein Tool, das möglicherweise mehr Diagnosefunktionen bietet, versuchen Sie xmllint --valid . Es werden zum Beispiel Fehler für DTDs angezeigt, die nicht abgerufen werden konnten.

Es ist sehr wahrscheinlich, dass die zusätzliche Zeit auf das Abrufen von Ressourcen wie der DTD zurückzuführen ist, die für die Validierung benötigt werden.

Bestätigen Sie für eine Ihrer Dateien, dass die URL der DTD schnell abgerufen werden kann, indem Sie mit einem Tool wie curl vom selben Server testen. Ist es eine komplexe DTD? Bringt es andere Dateien? Stellen Sie insbesondere sicher, dass es sich niemals auf Ressourcen bezieht, die aus dem Web geholt werden müssen, oder auf Hostnamen, bei denen DNS langsam aufgelöst wird.

    
Joe 27.02.2014 04:09
quelle

Tags und Links