Die Bezugnahme auf eine lokale DTD in Java
Habe ich einige XML, die ich bin-parsing mit SAX-parser in Java. Es beginnt mit dieser Einleitung:
<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 3.0//EN"
"http://www.w3.org/Math/DTD/mathml3/mathml3.dtd">
Wie ändere ich dies auf eine lokale DTD?
Ich nehme an, dass ich tun könnte etwas wie diese:
<!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 3.0//EN"
"file:///c:/MathML/mathml3.dtd">
Nicht genau wie, aber etwas so. Allerdings muss ich den Pfad unabhängig von dem system des Benutzers.
Wie verwende ich eine lokale DTD mit einem relativen Pfad zu den class-path?
- Vielleicht nützlich, sich an dieser Frage: stackoverflow.com/questions/243728/...
- Eine andere Möglichkeit ist die Verwendung eines XML-Katalog, der zur Behebung der doctype-Deklaration einer lokalen Datei ohne änderung der XML. Dadurch wird die änderung an einem parameter den parser-Aufruf.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf dieser Artikel auf die Verwendung von XML-Katalogen zu beheben DTDs lokal zimmerreserviereung, ohne das Sie ändern Sie Ihre XML-Datenquelle. Die grundlegenden Schritte sind:
Beim Umgang mit Web-Apps, können Sie die dtd in das " lib " - Ordner und bezeichnen Sie wie:
jar:file: <absolute-path>/log4j.jar!/org/apache/log4j/xml/log4j.dtd
Die Lösung ist die Angabe der DTD-Datei, die Lage im system mit classpath. Also der DocType, dass offline gearbeitet werden würde:
Auch ein anderer Weg kann es sein, dass die dtd auf localhost, so dass der Letzte Weg wird so etwas wie:
Definitiv nicht die eleganteste Lösung, aber sicher funktioniert.