I am trying to parse an xml using digester .
My XML
<root>
<Employee>
<Id>1</Id>
<FirstName>Charles</FirstName>
<LastName>Madigen</LastName>
<Location>Louisiana</Location>
<Skill>Accountant</Skill>
</Employee>
</root>
My Employee class
public class Employee {
private int empId;
private String fName;
private String lName;
private String location;
private String skill;
public Employee(int empId, String fName, String lName, String location,
String skill) {
this.empId = empId;
this.fName = fName;
this.lName = lName;
this.location = location;
this.skill = skill;
}
@Override
public String toString() {
return "Employee [empId=" + empId + ", fName=" + fName + ", lName="
+ lName + ", location=" + location + ", skill=" + skill + "]";
}
public void setEmpId(int empId) {
this.empId = empId;
}
public void setfName(String fName) {
this.fName = fName;
}
public void setlName(String lName) {
this.lName = lName;
}
public void setLocation(String location) {
this.location = location;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
and my reader class
public class CSVtoXMLTransformer {
public static void main(String[] args) throws IOException {
CSVtoXMLTransformer cx=new CSVtoXMLTransformer();
//cx.transfromer();
cx.validator();
}
void validator() throws IOException{
String itemTag = "root/Employee";
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate(itemTag, "assignment3.Employee");
digester.addCallMethod(itemTag + "/Id", "setEmpId", 0);
digester.addCallMethod(itemTag + "/FirstName", "setfName", 0);
digester.addCallMethod(itemTag + "/LastName", "setlName", 0);
digester.addCallMethod(itemTag + "/Location", "setLocation", 0);
digester.addCallMethod(itemTag + "/Skill", "setSkill", 0);
File inputFile = new File( "generatedEmployee.xml" );
Employee emp;
try {
emp = (Employee)digester.parse( inputFile );
System.out.println(emp);
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
But while running I am getting this error, Can any one help me on this
org.xml.sax.SAXParseException; systemId: file:/D:/workspace/poc2/generatedEmployee.xml; lineNumber: 2; columnNumber: 11; Error at line 2 char 11: assignment3.Employee
at org.apache.commons.digester.Digester.createSAXException(Digester.java:3363).......
Caused by: java.lang.NoSuchMethodException: assignment3.Employee.<init>()
at java.lang.Class.getConstructor0(Unknown Source)
... 17 more.....
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…