XML SAX wie bekommt man den Inhalt der 1. Zeile mit?

takidoso

Erfahrenes Mitglied
Hallo und Halli,
ich experimentiere z.Z. mit SAX rum und frage mich wie man im ContentHandler eigentlich die erste Zeile mitbekommt.
Also in der startDocument()-Methode offenbar nicht :-/
denn immerhin stehen da solche Dinge wie XML-Version und Encoding drinne.

Für einen Tip bin ich dankbar

Takidoso
 
Hallo,

hmmm, da das in erster Linie Informationen für den XML Parser sind scheinst da nicht über ein öffentliches API dran zukommen... ich würde das so machen (dann umgeht man auch den XML Parser Overhead)
Java:
/**
 * 
 */
package de.tutorials;

import java.io.FileReader;

/**
 * @author Thomas.Darimont
 * 
 */
public class XMLDocumentInformationExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        String file = "D:/stuff/springframework/2.1M1/spring-framework-2.1-m1/samples/petclinic/war/WEB-INF/web.xml";
        FileReader fileReader = new FileReader(file);
        StringBuilder stringBuilder = new StringBuilder();

        char currentChar = (char) -1;
        fileReader.skip(6); //<?xml .
        while ((currentChar = (char) fileReader.read())!= '?') {
            stringBuilder.append(currentChar);
        }
        fileReader.close();

        System.out.println(stringBuilder);
        String string = stringBuilder.toString();
        System.out.println("version: " +
        string.replaceAll(".*version=\"([^\"]*)\".*", "$1"));
        System.out.println("encoding: " +
                string.replaceAll(".*encoding=\"([^\"]*)\".*", "$1"));
    }

}

Ausgabe:
Code:
version="1.0" encoding="ISO-8859-1"
version: 1.0
encoding: ISO-8859-1

Gruß Tom
 
Zurück