# SAXParser Problem, startElement wird nicht ausgeführt



## 8bitme (6. Mai 2007)

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:

```
<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>
```
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 ;-) )

```
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:

```
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{}
				
	}

		
}
```


----------



## Roar (6. Mai 2007)

startElement will org.xml.sax.Attributes, keine com.sun.org.apache.xalan.internal.xsltc.runtime.Attributes


----------



## 8bitme (6. Mai 2007)

Hi Roar,
danke für deine verdammt schnelle Antwort!
Du hast keine Ahnung wie sehr Du mir grad den Tag gerettet hast.

VIELEN, VIELE, VIELEN und nochmals VIELEN DANK!!!

LG Martin


----------

