XML-Datei einlesen bei fehlender dtd, java
Von: , 21.10.2010 09:59 Uhr
Hallo zusammen,
Nachdem mir bei meinem letzten Problem so schnell und kompetent geholfen wurde, versuche ich es jetzt nochmal.
Ich arbeite an einem Java-Programm, das XML-Dateien einliest und daraufhin verschiedene Prüfungen durchführt. Das Programm läuft und funktioniert.
Allerdings kann es vorkommen, dass eine XML-Datei einen Doctype-Verweis (dtd) enthält, der einen Internetlink beinhaltet. Wird das Programm dann ausgeführt, ohne dass eine Internetverbindung besteht, "meckert" der XML-Parser verständlicherweise, dass die dtd-Datei nicht gefunden wird. Bisher kein Problem. In der neuen Programmversion soll dieses "Meckern" aber abgestellt werden können, sodass die XML-Datei dennoch eingelesen wird und den Prüfungen unterzogen werden kann.
Leider habe ich die dazu nötigen Einstellungen bisher nicht finden können. Derzeit wird die XML-Datei (bzw. entsprechend gegebener XPath-Ausdrücke bestimmte Knoten daraus) über folgenden Code eingelesen:
// XPath-Expression compilieren
synchronized (xPath) {
xPathExpression = xPath.compile(xPathString);
}
// XPath-Ausdruck auf InputSource anwenden
return (NodeList)xPathExpression.evaluate(inputSource, XPathConstants.NODESET);
xPath ist dabei ein javax.xml.xpath.XPath und xPathExpression eine javax.xml.xpath.XPathExpression. Könnt Ihr mir da weiterhelfen? Ich kann auch andere XML-Parser (JDOM, dom4j) nutzen, das lässt sich ja schnell umbauen. Wenn Ihr also "nur" für einen anderen Parser eine Lösung kennt, bitte her damit..;)
Ich hoffe, ich habe das Problem klar genug beschrieben und danke schonmal,
Mfg Martin
