Hi,
ich möchte eine XML-Datei einlesen und habe das Problem das die Methode startElement des DefaultHandlers nicht ausgeführt wird. Die Methoden character und endElement werden ausgeführt.
Ich bin für jede Idee dankbar und bedanke mich schon einmal im vorraus.
Martin
Ich hab folgende XML-Datei:
und der Handler dazu :
(falls irgendwo klammern etc. fehlen, das könnte daher kommen das ich den code eingekürzt habe ... also eclipse bescheinigt mir fehlerfreiheit ;-) )
und die den handler aufrufende klasse:
ich möchte eine XML-Datei einlesen und habe das Problem das die Methode startElement des DefaultHandlers nicht ausgeführt wird. Die Methoden character und endElement werden ausgeführt.
Ich bin für jede Idee dankbar und bedanke mich schon einmal im vorraus.
Martin
Ich hab folgende XML-Datei:
Code:
<xml>
<Spielinformation>
<dataelem Schiedsrichter="Hilmar B." />
</Spielinformation>
<Skizzen>
</Skizzen>
<Notizen>
<Notiz id="blub007">bluuuuub</Notiz>
</Notizen>
<BewertBogen>
<Kriterium>Stuermerfoul
<Multiplikator>5</Multiplikator>
<Mangelgruppe checked="false">Stuermerfoul mit Ballbesitz
<UFehler checked="true">anrennen, anspringen</UFehler>
<UFehler checked="false">anrennen (nach Anspiel)</UFehler>
</Mangelgruppe>
</Kriterium>
</BewertBogen>
</xml>
(falls irgendwo klammern etc. fehlen, das könnte daher kommen das ich den code eingekürzt habe ... also eclipse bescheinigt mir fehlerfreiheit ;-) )
Code:
import java.util.Vector;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
import com.sun.org.apache.xalan.internal.xsltc.runtime.Attributes;
class myHandler extends DefaultHandler{
public void startDocument() throws SAXException{
//debug
System.out.println("------------>\r\nDocumentStart");
//debug ende
}
public void warning(SAXParseException e) throws SAXException{
System.out.println("----->Line: "+e.getLineNumber()+ " Col: "+ e.getColumnNumber()+ " Message: "+ e.getLocalizedMessage());
}
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
// debug
System.out.println("StartTag: "+qName+ " Stackhoehe: "+ObjStack.size());
// debug ende
}
public void endElement(String uri, String localName, String qName) throws SAXException{
// debug
System.out.println("EndTag: "+qName+ " Stackhoehe: "+ObjStack.size());
//debug ende
}
public void characters(char[] ch, int start, int length) throws SAXException{
// produktiv
// Content in String
String Content = new String(ch, start, length).trim();
// debug
System.out.println("Content: "+Content);
// debug ende
}
}
und die den handler aufrufende klasse:
Code:
import java.io.IOException;
import java.util.Vector;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import com.sun.org.apache.xerces.internal.parsers.SAXParser;
public class XmlDaten {
private String filename = new String();
private myHandler MyData = new myHandler();
private SAXParserFactory myFactory;
private javax.xml.parsers.SAXParser myParser;
public XmlDaten(String filename) throws ParserConfigurationException, /*SAXException,*/ IOException{
try {
myFactory = SAXParserFactory.newInstance();
try
{
myParser = myFactory.newSAXParser();
myParser.parse(filename, MyData);
}
catch (Exception e)
{
System.err.println("Fehler beim parsen: ");
System.err.println(e);
}
}
finally{}
}
}