
81007
31.07.2009, aktualisiert um 13:27:49 Uhr
Java XML Reader
Hallo, brauche einmal eure Hilfe.
Ich möchte einen JAVA xml reader schreiben, der eine XML herunterlädt und nach einem Bestimmten wert sucht.
Runterladen klappt super, wenn der XML parser jedoch die XML einlesen möchte bekomme ich
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Hofffe ihr könnt mir helfen, danke!
Hier der Code
public void readConfig() {
try {
configFile = new URL("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
InputStream in = configFile.openStream();
byte buffer = new byte[8192];
FileOutputStream out = new FileOutputStream(new File("eurofxref-daily.xml"));
int _tmp = 0;
while ((_tmp= in.read(buffer)) > 0){
out.write(buffer, 0 , _tmp);
}
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
// das XML-Dokument lesen
while (eventReader.hasNext()) {
XMLEvent event = eventReader.nextEvent();
if (event.isStartElement()) {
if (event.asStartElement().getName().getLocalPart() == ("gesmes:Sender")) {
event = eventReader.nextEvent();
System.out.println(event.asCharacters().getData());
continue;
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (XMLStreamException e) {
e.printStackTrace();
}
catch (IOException e){
e.printStackTrace();
}
}
Ich möchte einen JAVA xml reader schreiben, der eine XML herunterlädt und nach einem Bestimmten wert sucht.
Runterladen klappt super, wenn der XML parser jedoch die XML einlesen möchte bekomme ich
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Hofffe ihr könnt mir helfen, danke!
Hier der Code
public void readConfig() {
try {
configFile = new URL("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
InputStream in = configFile.openStream();
byte buffer = new byte[8192];
FileOutputStream out = new FileOutputStream(new File("eurofxref-daily.xml"));
int _tmp = 0;
while ((_tmp= in.read(buffer)) > 0){
out.write(buffer, 0 , _tmp);
}
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
// das XML-Dokument lesen
while (eventReader.hasNext()) {
XMLEvent event = eventReader.nextEvent();
if (event.isStartElement()) {
if (event.asStartElement().getName().getLocalPart() == ("gesmes:Sender")) {
event = eventReader.nextEvent();
System.out.println(event.asCharacters().getData());
continue;
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (XMLStreamException e) {
e.printStackTrace();
}
catch (IOException e){
e.printStackTrace();
}
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 121767
Url: https://administrator.de/forum/java-xml-reader-121767.html
Ausgedruckt am: 19.04.2025 um 09:04 Uhr
7 Kommentare
Neuester Kommentar
Sollte ein Java Stack Trace nicht auch die Zeile ausgeben, in der der Fehler auftritt?
Würde helfen, wenn man den Befehl wüsste, der den Fehler erzeugt.
Ansonsten, Du liest zuerst den Input Stream bis zum Ende ein und gibts danach den Input Stream dem EventReader zum Lesen. Bist Du Dir sicher, daß der den Pointer resettet und wieder von vorne anfängt?
Würde helfen, wenn man den Befehl wüsste, der den Fehler erzeugt.
Ansonsten, Du liest zuerst den Input Stream bis zum Ende ein und gibts danach den Input Stream dem EventReader zum Lesen. Bist Du Dir sicher, daß der den Pointer resettet und wieder von vorne anfängt?
Wäre schön die Lösung zu posten, trotzdem daß man sie selber gefunden hat, falls mal jemand anderes so einen Fehler hat und die Suche verwendet.
Aber zurück zur Frage:
Eigentlich gar nicht, was sollte den bei einem String wie "A2,3B34C5" als Double rauskommen?
Ansonsten, wenn der String irgendwie Struktur hat, die Buchstaben rund um die Zahl entfernen mit Funktionen wie replace, substring, split etc. und dann konvertieren.
Aber zurück zur Frage:
Eigentlich gar nicht, was sollte den bei einem String wie "A2,3B34C5" als Double rauskommen?
Ansonsten, wenn der String irgendwie Struktur hat, die Buchstaben rund um die Zahl entfernen mit Funktionen wie replace, substring, split etc. und dann konvertieren.
Also xml als plain zu verarbeiten und dann so zu verstümmeln ist schon bald pervers 
wie wärs wenn mans richtig angeht?
wie wärs wenn mans richtig angeht?