Portal > Foren > Java > Allgemeine Java-Programmierung > SAX Parser - Dokumentwurzelelement fehlt
Antwort
 
Themen-Optionen
Alt 13.03.2007, 13:57 Nach oben    #1
Sven Bartak
 
Benutzerbild von boehseronkel
 
Registriert seit: 05.09.2006
Ort: Holzwickede
Beiträge: 16
Standard SAX Parser - Dokumentwurzelelement fehlt

Hallo zusammen,

ich habe ein Problem. Ich arbeite mit dem SAX Parser und versuche eine XML Datei zu lesen, welche kein Wurzelelement hat.

Code:
<root>
    <element />
    ...
    ...
    ...
</root>
Wie man sieht fehlt z.B.

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
Jetzt wirft mir der SAX Parser, zurecht, eine Exception das das Dokumentwurzelelement fehlt. Kann ich das irgendwie umgehen?

Gruß Sven
__________________
...with best regards...

Sven Bartak
junior software engineer

Address » Dorfstraße 37, D-59439 Holzwickede | Mail » info[AT]svenbartak[DOT]de | Web
» http://www.svenbartak.de
boehseronkel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2007, 14:01 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Die Frage bzw. Anmerkung muss ja zwangsläufig kommen:
Sofern du die Datei selbst erstellst .. warum erstellst du sie nicht so, dass das Problem gar nicht erst auftritt?

Wenn die Datei aus einer externen Umgebung kommt kannst du da ja wohl nichts dran machen. Kannst du vielleicht hier kurz den Code reinstellen, den du verwendest, um so eine Datei zu lesen? Dann kann man das auch ohne Aufwand mal austesten, was da eigentlich so an Meldungen ausgespuckt wird.

Habe selbst noch nicht mit XML in Verbindung mit Java gearbeitet.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2007, 14:08 Nach oben    #3
Sven Bartak
 
Benutzerbild von boehseronkel
 
Registriert seit: 05.09.2006
Ort: Holzwickede
Beiträge: 16
Standard

Hallo,

die Dateien kommen aus einer Fremdapplikation, deswegen kann ich diese leider nicht editieren.

Folgende Exception wird geworfen.
Code:
org.xml.sax.SAXParseException: Dokumentwurzelelement fehlt
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
    at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
    at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
    at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
    at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:281)
    at com.tu.tool.common.parser.ResourcesXmlParser.parseFile(ResourcesXmlParser.java:87)
    at com.tu.tool.common.parser.test.TestResourcesXmlParser.main(TestResourcesXmlParser.java:23)
Und hier mal der dementsprechende Sourcecode für den Abschnitt.

Code:
...
...
...

public void parseFile()
  {
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setNamespaceAware(true);
    
    for(int i=0; i<metaAttributes.size(); i++)
    {
      Object obj = metaAttributes.get(i);
      
      if(obj instanceof String)
      {
        String metaAttribute = (String)obj;
        
        String completeFileName = new String(filename + metaAttribute.toLowerCase() + RESOURCES_FILE_ENDING);
        
        try
        {
          SAXParser saxParser = factory.newSAXParser();

          // Hier schmeisst er mir die Exception !!!
          saxParser.parse(new File(completeFileName), this);
        }
        catch (FileNotFoundException fne)
        {
          System.out.println("File not found, please specify one!");
        }
        catch (Throwable t)
        {
          t.printStackTrace();
        }
      }
    }
  }

...
...
...
Die Klasse erbt vom "DefaultHandler".
Den Pfad zur Datei habe ich mir ausgeben lassen:
a) er ist korrekt
b) wenn ich eine Datei zur Probe anlege und mit Dokumentenwurzel versehe, geht es auch

ergo muss ich irgendwie dem parser sagen das er diese ignorieren soll. Nur wie mache ich das

Gruß Sven u. danke schonmal
__________________
...with best regards...

Sven Bartak
junior software engineer

Address » Dorfstraße 37, D-59439 Holzwickede | Mail » info[AT]svenbartak[DOT]de | Web
» http://www.svenbartak.de
boehseronkel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2007, 14:49 Nach oben    #4
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Ein Wurzelelement scheint es doch zu geben: root. Scheint doch nur die XML-Deklaration zu fehlen.?

Falls es keine schönere Lösung gibt würde ich die Daten einfach um alles Fehlende erweitert in eine temporäre Datei kopieren.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2007, 14:52 Nach oben    #5
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Was mich wundert ist, warum in der Message steht "Dokumentwurzelelement fehlt" .. also auf deutsch?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2007, 14:58 Nach oben    #6
Sven Bartak
 
Benutzerbild von boehseronkel
 
Registriert seit: 05.09.2006
Ort: Holzwickede
Beiträge: 16
Standard

Zitat:
Zitat von Basti Beitrag anzeigen
Ein Wurzelelement scheint es doch zu geben: root. Scheint doch nur die XML-Deklaration zu fehlen.?

Falls es keine schönere Lösung gibt würde ich die Daten einfach um alles Fehlende erweitert in eine temporäre Datei kopieren.

Basti

Hallo,

ja das Wurzelelement scheint da zu sein, aber die Deklaration der XML fehlt. Daran hängt er sich auf ...

Das mit den Dateien habe ich auch schon überlegt. Würde diese Möglichkeit aber gerne ausschließen

Zitat:
Zitat von Ben Beitrag anzeigen
Was mich wundert ist, warum in der Message steht "Dokumentwurzelelement fehlt" .. also auf deutsch?
Ja, das hat mich auch schon gewundert. Weiß auch nicht wieso ... hab noch keine Nachforschungen angestellt.

Gruß Sven
__________________
...with best regards...

Sven Bartak
junior software engineer

Address » Dorfstraße 37, D-59439 Holzwickede | Mail » info[AT]svenbartak[DOT]de | Web
» http://www.svenbartak.de
boehseronkel ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] vCard PHP Parser Jann Hendrik Tutorials 0 22.08.2007 10:24
XML Parser mit PHP4 Eyüp PHP-Programmierung 4 24.06.2007 16:20
Bug im PEAR XML Parser? ex³ PEAR, PECL und Frameworks 11 15.02.2007 14:51
Fehler im PHP Parser oder lag der Fehler doch bei mir? Prophet PHP-Programmierung 4 12.05.2006 17:17
[Java] Parser Generierung mit JavaCC - Eine Einführung pago Tutorials 0 14.04.2006 11:54


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:38 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44