XML problem SaxParser startElement() isn't called.
843834Jun 26 2001 — edited Apr 23 2004Following code is a inner class:
private class PropertyParser extends HandlerBase {
private String valueClassName;
private String columnName;
private String methodName;
Hashtable mappingTable = new Hashtable();
public void startElement(String strElement, Attributes attrList)
{
Constants.print("1 " + strElement);
if(strElement.equals("VALUES")) {
valueClassName = attrList.getValue("CLASS");
Constants.print("valueClassName " + valueClassName);
}
else if(strElement.equals("COLUMNS")) {
String columnName = attrList.getValue("NAME");
Constants.print("columnName " + columnName);
String methodName = attrList.getValue("METHOD");
Constants.print("methodName " + methodName);
mappingTable.put(columnName,methodName);
}
}
public void endElement(String strElement)
{
}
public void parsePropertyFile(File xmlFile) throws ParserException
{
try {
SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = saxParserFactory.newSAXParser();
Constants.print("before parse");
saxParser.parse(xmlFile, this);
Constants.print("after parse");
}
catch(IOException ioE) {
Constants.print(""+ioE);
//Handle IO Exception here
throw new ParserException(""+ioE);
}
catch(SAXException saxE) {
Constants.print(""+saxE);
//Handle SAX exception here.
throw new ParserException(""+saxE);
}
catch(ParserConfigurationException pcE) {
Constants.print(""+pcE);
//Handle Parser configaration exception here.
throw new ParserException(""+pcE);
}
}
}
I call this class as follows:
PropertyParser pp = new PropertyParser();
pp.parsePropertyFile(this.xmlLoadFile);
My question is as follows:
When the XML is parsed the method startElement should be called at each open element ?!
the following is my XML:<?xml version="1.0"?>
<VALUES CLASS="nl.serise.objects.Employee">
<COLUMNS NAME="achternaam" METHOD="getAchternaam"/>
<COLUMNS NAME="email1" METHOD="getEmail1"/>
<COLUMNS NAME="email2" METHOD="getEmail2"/>
<COLUMNS NAME="ervaringsinds" METHOD="getErvaringsinds"/>
<COLUMNS NAME="geboortedatum" METHOD="getGeboortedatum"/>
<COLUMNS NAME="id" METHOD="getId"/>
<COLUMNS NAME="voornaam" METHOD="getVoornaam"/>
<COLUMNS NAME="tel1" METHOD="getTel1"/>
<COLUMNS NAME="tel2" METHOD="getTel2"/>
<COLUMNS NAME="tel3" METHOD="getTel3"/>
<COLUMNS NAME="tussenvoegsel" METHOD="getTussenvoegsel"/>
<COLUMNS NAME="voornaam" METHOD="getVoornaam"/>
<COLUMNS NAME="woonplaats" METHOD="getWoonplaats"/>
</VALUES>
why isn't startElement() called when parsing this XML......???
parsing goes well because "before parse" and "after parse" is printed without any Exception.
ps
Constants.print("string") is my central System.out.println("string").
Met vriendelijke groet,
Kind regards,
Melle Zegel