Parsen einer XML-Datei: Wo sind meine Start-Tags???

Status
Nicht offen für weitere Antworten.

Amelia

Mitglied
Meine Klasse. - Wie gehabt. Problem beim Ausführen:
"Could not find main class. Programm will exit!" :shock:
Exception in thread "main" java.lang.Error: Unaufgelöstes Kompilierungsproblem:
at SAXParserClass.main(SAXParserClass.java:18 ) --> Hier Zeile 17
Das versteh ich nicht!!!


Code:
/**
 *  SAXParserClass.java
 */

import java.io.IOException; 
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class SAXParserClass {
    //Objekte
	static String xmlFile = "MyXmlFile.xml"; 
    //main
    public static void main (String[] args) {
    	try {
            SAXParserFactory factory = SAXParserFactory.newInstance();
            SAXParser parser = factory.newSAXParser();
            
            DefaultHandler handler = new DefaultHandler();
            parser.parse(xmlFile, handler);
        }//try
        catch (FactoryConfigurationError e) {
         // unable to get a document builder factory
        } //catch
        catch (ParserConfigurationException e) {
        // parser was unable to be configured
        }
        catch (SAXException e) {
        // parsing error
        }//catch 
        catch (IOException e) {
        // i/o error
        }//catch
    }//main
    
}//class
 

Amelia

Mitglied
Ja ich hab nen paar Einstellungen im Eclipse vorgenommen, jetzt läufts bei mir auch. DANKÖ!
Sag ja: Bin totaler Newbie auf dem Gebiet! 8)

Hab aber schon wieder das nächste Problem :eek:
Hab mir jetzt mal n anderes Beispiel gesucht, das besser beschrieben ist.
Dementsprechend n bissl anderen Code jetzt.
Ich würd mal gern was geparstes ausgeben!


--> ihm fehlt jetzt aber der Übergabeparameter.
Wieso aber? Ich übergebe ihn doch: File datei = new File(param[0]); Oder wie oder was ???

Code:
import java.io.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;


public class parsen extends DefaultHandler{
	
	String datei = "xmlinhalt.xml";

	public static void main(String param[])  throws Exception{
	
		if (param.length != 1){
			System.out.println("Uebergabeparameter vergessen!");
			System.out.println("param[1]= " + param[1] );
			System.exit(1);
		}//if

	         DefaultHandler handler = new parsen();
		File datei = new File(param[0]);
		System.out.println("okay");
		
		boolean laden = datei.canRead();
		if (laden == true){
			try{
				SAXParserFactory factory = SAXParserFactory.newInstance();
				SAXParser saxParser = factory.newSAXParser();
				saxParser.parse(datei,handler);
			}//try
			catch (Throwable t){
				t.printStackTrace();
			}//catch
		} else {
			System.out.println ("Datei existiert nicht!");
		}//if else
	}//main
}//class
 

zoele2002

Mitglied
schreib doch mal parsen gross, also -> class Parsen
und -> new Parsen

dann gibts zumindest beim compilieren keine fehlermeldung mehr.

gruß,

zoele2002
 

Amelia

Mitglied
also erstmal muss es wieder heissen static String datei... soweit bin ich schonmal wieder 8)

dann gehe ich in das Verzeichnis, wo die Datein liegen und sage der Komamndozeile:
java parsen xmlinhalt.xml
und da bekomem ich die Meldung:
Exception in Thread main java.lang.NoClassDefFoundError: parsen
im Eclipse bekomme ich folgende Meldung:
Uebergabeparameter vergessen!
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at parsen.main(parsen.java:34)

Könnte es evtl sein, dass ein konstruktor benötigt wird???
Mit Konstruktoren steh ich auf Kriegsfuß :oops: die werd ich wohl nie verstehen! :roll:
 

Pennywise

Aktives Mitglied
1. Ich komme immer in die if-Methode, da dein param[] immer != 1 ist. Da fliegst du auch ab.
2. Wie soll denn die Ausgabe am Ende aussehen?
 

Amelia

Mitglied
na die xml-Datei soll ausgegeben werden:

Code:
<PERSONEN>
	-<PERSON>
		<NAME> Nikolaus Weihnachtsmann </NAME>
		<STRASSE> Eisscholle 1 </STRASSE>
		<PLZ> 2412 </PLZ>
		<ORT> Nordpol </ORT>
		<TEL> 012/241200 </TEL>
	</PERSON>
	-<PERSON>
		<NAME> Oskar Osterhase </NAME>
		<STRASSE> Eierring 28 </STRASSE>
		<PLZ> 87654 </PLZ>
		<ORT> Eierhausen </ORT>
		<TEL> 034/678376 </TEL>
	</PERSON>
	-<PERSON>
		<NAME> Käptn Blaubär </NAME>
		<STRASSE> Schwindelweg 3 </STRASSE>
		<PLZ> 21211 </PLZ>
		<ORT> Lügenbeutel </ORT>
		<TEL> 08765/324553 </TEL>
	</PERSON>
</PERSONEN>
[/quote]
 

Pennywise

Aktives Mitglied
Dein param[] ist immer ungleich 1. Deswegen landest du immer in der if-Schleife.
Er ist deswegen immer ungleich, da du ihm keine Größe zugewiesen hast.
Aber selbst dann wirds noch nichtgehen, weil du deinem param[0] noch den wert
des datei-Strings übergeben musst.

aß auf, ich hab hier mal das zusammengeschrieben:

Code:
public class MyParsen extends DefaultHandler {
    String datei = "xmlinhalt.xml";
    String param[] = new String[1]; //Größe = 1
    
    public static void main(String[] args) {
        new MyParsen().start(); //hier wird eine neue Instanz von MyParsen erzeugt,
        						//und die Methode start() aufgerufen
    }
    
    private void start() {
        param[0] = datei; //Wertzuweisung des datei-Strings an param[0]
        File datei = new File(param[0]);
        DefaultHandler handler = this;
        System.out.println("okay"); 
        
       boolean laden = datei.canRead(); 
       if (laden == true){ 
          try{ 
             SAXParserFactory factory = SAXParserFactory.newInstance(); 
             SAXParser saxParser = factory.newSAXParser(); 
             saxParser.parse(datei,handler); 
          }//try 
          catch (Throwable t){ 
             t.printStackTrace(); 
          }//catch 
       } else { 
          System.out.println ("Datei existiert nicht!"); 
       }//if else 
    }
}

Probiers mal aus.
 

Amelia

Mitglied
Okay.DANKE. Ich hab es geahnt: Mein Haßthema "Konstrukoren" :eek:)
Noch eine vorerst letzte Frage: "Sollten die xml-Daten" jetzt nicht ausgegeben werden ???
 

Amelia

Mitglied
Oh Mann.... Mein Quellcode anbei.

Problem:
Er gibt mir alle Endtags aus und das sogar 3 mal!
Mehr jedoch nicht. Was ist mit den Starttags und dem Inhalt ???
Irhendwie ignoriert er meine StartDokument() und StartElement() :(
Please help!!!

Code:
import java.io.*;
import javax.xml.parsers.*;
import java.util.jar.Attributes;
import org.xml.sax.SAXException;

public class parsen extends DefaultHandler{
	
	static String datei = "xmlinhalt.xml";
	static String param[] = new String[1];
	
	public static void main(String param[]){
		parsen MyParsen = new parsen();
		MyParsen.start();
	}//main
	
	private void start(){
		param[0] = datei; 
                File datei = new File(param[0]);
                DefaultHandler handler = this;

		boolean laden = datei.canRead();
		if (laden == true){
			try	{
				SAXParserFactory factory = SAXParserFactory.newInstance();
				SAXParser saxParser = factory.newSAXParser();
				saxParser.parse(datei,handler);
				System.out.println("Datei geladen");
			}//try
			catch (Throwable t)	{
				t.printStackTrace();
			}//catch
		} else {
			System.out.println ("Datei existiert nicht!");
		}//if else

	}//MyParsen
	
	public void startDocument() {
		System.out.println("Parsen startet; Beginn des Dokuments");
	}//startDocument
	
	public void startElement(String namespaceURI, String localName, String qName, Attributes atts) 
																throws SAXException {
	    System.out.println( "Start eines Elements" );
	    System.out.println( "namespaceURI: " + namespaceURI );
	    System.out.println( "localName: " + localName );
            System.out.println( "qName: " + qName );
	    for ( int i = 0; i < atts.size(); i++ ) {
		System.out.println( "Attribut Nr. " + i + ": " +
		atts.getValue(qName) + " = " + atts.size());
	    }//for
	}//startElement
	
	public void endElement( String namespaceURI, String localName, String qName){
	    System.out.println( "Ende eines Elements" );
	    System.out.println( "namespaceURI: " + namespaceURI );
	    System.out.println( "localName: " + localName );
	    System.out.println( "qName: " + qName );
	}//endElement
	
	public void endDocument(){
		System.out.println("Parsen beendet; Ende des Dokuments erreicht");
	}//endDocument

}//class



Das ist die Ausgabe:
Parsen startet; Beginn des Dokuments
Ende eines Elements
namespaceURI:
localName:
qName: NAME
Ende eines Elements
namespaceURI:
localName:
qName: STRASSE
Ende eines Elements
namespaceURI:
localName:
qName: PLZ
Ende eines Elements
namespaceURI:
localName:
qName: ORT
Ende eines Elements
namespaceURI:
localName:
qName: TEL
Ende eines Elements
namespaceURI:
localName:
qName: PERSON
Ende eines Elements
namespaceURI:
localName:
qName: NAME
Ende eines Elements
namespaceURI:
localName:
qName: STRASSE
Ende eines Elements
namespaceURI:
localName:
qName: PLZ
Ende eines Elements
namespaceURI:
localName:
qName: ORT
Ende eines Elements
namespaceURI:
localName:
qName: TEL
Ende eines Elements
namespaceURI:
localName:
qName: PERSON
Ende eines Elements
namespaceURI:
localName:
qName: NAME
Ende eines Elements
namespaceURI:
localName:
qName: STRASSE
Ende eines Elements
namespaceURI:
localName:
qName: PLZ
Ende eines Elements
namespaceURI:
localName:
qName: ORT
Ende eines Elements
namespaceURI:
localName:
qName: TEL
Ende eines Elements
namespaceURI:
localName:
qName: PERSON
Ende eines Elements
namespaceURI:
localName:
qName: PERSONEN
Ende eines Elements
namespaceURI:
localName:
qName: subjects
Parsen beendet; Ende des Dokuments erreicht
Datei geladen
 

Bleiglanz

Gesperrter Benutzer
import java.util.jar.Attributes;


falscher import, und weil du vom DefaultHandler erbst, ist startElement schon da

deine Methode ist dann einfach x-beliebig, weil die Signatur nicht passt!
 

Bleiglanz

Gesperrter Benutzer
schau mal die Signatur von startElement in der API an

Welchen Typ hat der parameter atts?

Welchen Typ verwendest du?

Weil du die Methode falsch implementierst, merkt der Compiler nicht, dass du eigentlich eine Methode aus der Oberklasse überschreiben wolltest...
 
R

Roar

Gast
die methode startElemnt erwartet ein parameter vom typ org.xml.sax.Attributes, deine methode startElement erwartet aber einen parameter vom typ java.util.jar.Attributes. so eine methode kennt der parser nicht und ruft sie auch nicht auf.
benutz mal nen normalen texteditor, nicht eclipse, und schrieb deine imports selbst! man sieht ja was rauskommt.
 

Amelia

Mitglied
oh bin ich blöd! :roll: recht hast du! :oops:
hab einfach 2 verschiedene beispiele als vorlagen benutzt !!! DANKÖ!!! :applaus:

Mir ist auch noch nicht wirklich klar, wozu die 2 Funktionen startElement() und endElement() dienen :?:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Parsen einer Datei? Java Basics - Anfänger-Themen 3
V Umlaute beim Parsen einer HTML Seite Java Basics - Anfänger-Themen 4
E Mathematisch parsen, aber mit einer Variablen X ! Java Basics - Anfänger-Themen 6
M regulärer Ausdruck zum Parsen einer E-Mail Signatur Java Basics - Anfänger-Themen 16
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
W Strings und das parsen Java Basics - Anfänger-Themen 8
R String index out of range: -1 beim Datei Parsen Java Basics - Anfänger-Themen 15
K String nach bestimmtem Muster parsen Java Basics - Anfänger-Themen 3
K Datentypen String zu Integer parsen Java Basics - Anfänger-Themen 2
L Jackson JSON parsen Java Basics - Anfänger-Themen 7
7.7GradOst Datentypen Stringeingabe aus z.B. "4,d,<" parsen Java Basics - Anfänger-Themen 7
D InputStream parsen und als Bilddatei abspeichern Java Basics - Anfänger-Themen 1
M JAVA String schnell parsen Java Basics - Anfänger-Themen 14
K Methoden Datum parsen Java Basics - Anfänger-Themen 16
V Java Regex richtig parsen Java Basics - Anfänger-Themen 2
J Rekursives Parsen (ohne Reg Expressions) Java Basics - Anfänger-Themen 8
L Beliebigen Datentypen aus String parsen Java Basics - Anfänger-Themen 6
L Datei aus Multipart parsen und speichern, seltsam codiert? Java Basics - Anfänger-Themen 16
J String aus Json File parsen Java Basics - Anfänger-Themen 6
S Date parsen klappt nicht richtig Java Basics - Anfänger-Themen 3
M Webseiten Parsen Java Basics - Anfänger-Themen 2
M Input/Output Probleme beim Parsen von CSV und TXT Dateien Java Basics - Anfänger-Themen 7
P String parsen Java Basics - Anfänger-Themen 5
S fehler beim datum parsen Java Basics - Anfänger-Themen 6
T Klassen CSV datei einlesen und parsen Java Basics - Anfänger-Themen 4
F Methoden Termin parsen Java Basics - Anfänger-Themen 2
Luk10 String (Hexadezimal) zu int parsen Java Basics - Anfänger-Themen 12
O Nicht Standard Form boolesche Funktion in Standard Form parsen Java Basics - Anfänger-Themen 3
E Datentypen Unvollständiges Datum parsen Java Basics - Anfänger-Themen 8
U Website parsen Java Basics - Anfänger-Themen 11
D Java - OutOfMemoryError beim Parsen Java Basics - Anfänger-Themen 15
J String zu Double parsen (multiple points) Java Basics - Anfänger-Themen 2
K Fehlerbehandlung beim Parsen von Strings Java Basics - Anfänger-Themen 9
F Datum AM / PM parsen Java Basics - Anfänger-Themen 5
A Datentypen Datum mit "May" zu Date parsen Java Basics - Anfänger-Themen 6
F Datum parsen Java Basics - Anfänger-Themen 6
R Datumsformatierung parsen Java Basics - Anfänger-Themen 8
E Code parsen/ formatieren Java Basics - Anfänger-Themen 3
G String parsen Java Basics - Anfänger-Themen 3
J int Wert mit getter holen und in String parsen Java Basics - Anfänger-Themen 5
trash Double Parsen? Java Basics - Anfänger-Themen 3
M Datum parsen Java Basics - Anfänger-Themen 10
A Parsen von double zu int? Java Basics - Anfänger-Themen 2
L String zu Enum parsen Java Basics - Anfänger-Themen 8
L String zuverlässig nach Char parsen? Java Basics - Anfänger-Themen 4
S String KeyEvent parsen Java Basics - Anfänger-Themen 2
D Datum parsen Java Basics - Anfänger-Themen 11
H XML Parsen Java Basics - Anfänger-Themen 7
J HTML mit XPath parsen Java Basics - Anfänger-Themen 7
H Gleichung parsen Java Basics - Anfänger-Themen 10
Spin SAX parsen ..XML not found Java Basics - Anfänger-Themen 2
W String zu Calendar parsen Java Basics - Anfänger-Themen 4
S String Parsen Java Basics - Anfänger-Themen 3
T Zeitwerte parsen Java Basics - Anfänger-Themen 6
J Scanner - Zeile parsen Java Basics - Anfänger-Themen 8
S String parsen Java Basics - Anfänger-Themen 17
W Char in String parsen Java Basics - Anfänger-Themen 6
E Wochentag String parsen Java Basics - Anfänger-Themen 2
S Ascii Datei parsen Java Basics - Anfänger-Themen 2
bugmenot args parsen Java Basics - Anfänger-Themen 3
G Swing xml parsen - Office Java Basics - Anfänger-Themen 8
M Bilder "parsen" Java Basics - Anfänger-Themen 5
G String parsen Java Basics - Anfänger-Themen 7
G Char Wert in Int Wert parsen Java Basics - Anfänger-Themen 10
P HTML parsen Java Basics - Anfänger-Themen 2
K Objekte zurück parsen Java Basics - Anfänger-Themen 2
D xml parsen mit Java Java Basics - Anfänger-Themen 5
G Vector Strijng parsen Java Basics - Anfänger-Themen 6
G Url parsen? Java Basics - Anfänger-Themen 3
H parsen Java Basics - Anfänger-Themen 24
M probleme beim parsen Java Basics - Anfänger-Themen 7
T Beim XML-Parsen Text einlesen Java Basics - Anfänger-Themen 5
C parsen Java Basics - Anfänger-Themen 2
G Parsen eines Strings Java Basics - Anfänger-Themen 4
M Object[] parsen Java Basics - Anfänger-Themen 9
N Int parsen Java Basics - Anfänger-Themen 3
D Array Parsen Java Basics - Anfänger-Themen 4
N Datum parsen Java Basics - Anfänger-Themen 3
P Datei mit Strings parsen Java Basics - Anfänger-Themen 4
M Html Parsen / Values von Hidden Fields auslesen Java Basics - Anfänger-Themen 10
W html parsen Java Basics - Anfänger-Themen 2
K Tokens in Integer parsen Java Basics - Anfänger-Themen 2
D HTML-Datei einlesen/parsen Java Basics - Anfänger-Themen 9
J java script mit java parsen Java Basics - Anfänger-Themen 6
G parsen von double zu int Java Basics - Anfänger-Themen 4
RaoulDuke java.util.Date parsen Java Basics - Anfänger-Themen 5
B Problem beim XML-Parsen Java Basics - Anfänger-Themen 10
G Parsen des Datums nicht möglich! Wer kann helfen? Java Basics - Anfänger-Themen 7
M.C.S. String parsen in Java Java Basics - Anfänger-Themen 5
R Website mit Java parsen Java Basics - Anfänger-Themen 4
S String nach boolean parsen! Java Basics - Anfänger-Themen 5
C Text mit Trennzeichen parsen (Bsp. Ich/esse/heute/Eis) Java Basics - Anfänger-Themen 9
A erste Schritte auf dem Weg eine XML-Datei zu parsen Java Basics - Anfänger-Themen 2
F Kommandozeile parsen Java Basics - Anfänger-Themen 6
T XML Parsen und Inhalt in ein Byte Array schreiben Java Basics - Anfänger-Themen 3
P String zu Date bei jedem Tastendruck parsen Java Basics - Anfänger-Themen 3
V logfile parsen Java Basics - Anfänger-Themen 7
D HTML Code einlesen und nach Links parsen Java Basics - Anfänger-Themen 10
M String array in Int array parsen und umgekehrt Java Basics - Anfänger-Themen 6
D String in einen primitiven datentypen parsen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben