XML XHTML-Parsen

Marine-of-Hell

Grünschnabel
Hallo Zusammen!

Ich hab ein (wahrscheinlich triviales) Problem mit dem W3C Dom Parser.
Eine XHTML-Datei die ich parse und Tags wie <meta ... /> oder <img ... /> enthält, führen zu einem XML-Parser Fehler, der besagt das er das schließende Tag </img> bzw. </meta> erwartet. Anscheinend geht also der Parser hin und ändert zwar die Tags in <meta> oder <img> fügt aber dummerweise kein schließendes Tag an.
Eine andere Möglichkeit, die ich hier im Forum gefunden habe, wäre das Einlesen über einen CharacterReader, wie StreamReader. Da erhalte ich jedoch unsinngerweise eine IOException mit HTTP 503 Error.
Ich habe jetzt schon verschiedene Parser probiert - JDOM, SAX und halt W3C, jedoch schlägt das immer wieder fehl.

Hier mal der Codeauszug mit dem Tag-Problem:
Code:
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		factory.setValidating(false);
        DocumentBuilder builder = factory.newDocumentBuilder();
        builder.setEntityResolver(new EntityResolver() {
        	public InputSource resolveEntity(String publicId, String systemId) {
        		return new InputSource(new StringReader(""));
        	}
        });
        File objFile = new File("D:\\profil.xhtml");
        Document objMainDoc = builder.parse(objFile);

Bei folgendem Code erhalte ich die IOException: "Server returned HTTP response code: 503 for URL: http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-inlstyle-1.mod.":
Code:
		 DocumentBuilderFactory dbf =
	            DocumentBuilderFactory.newInstance();
	     DocumentBuilder db = dbf.newDocumentBuilder();


        
        File objFile = new File("D:\\profil.xhtml");
        InputSource is = new InputSource();
		BufferedReader br = new BufferedReader(new FileReader(objFile));
		String strCurrentLine = null;
		StringBuffer objFileContents = new StringBuffer();
		while ((strCurrentLine = br.readLine()) != null)
		{
			objFileContents.append(strCurrentLine);
		}
		br.close();
        is.setCharacterStream(new StringReader(objFileContents.toString()));
        Document objMainDoc = db.parse(is);

Wäre super wenn mir hier jemand helfen könnte. :confused:

Schon mal vielen, lieben Dank im vorraus.

Gruß,
Thomas

PS: Ich habs auch schon mit diversen HowTo's bzw. Tutorials probiert.

Edit: Habe das Problem gefunden. Das Dokument war - obwohl es von einen anderen Parser stammt - nicht wohlgeformt. Eine Prüfung mit einen Online-Parser (w3schools.com) hat mir die Fehler gezeigt.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück