Dom4j is a Java xml api, similar to JDOM, used to read and write XML files. It features excellent performance, powerful functionality, and ease of use.
Jar package: dom4j-1.6.1.jar
XML file to be parsed: people. xml
XML Code
- <People city = "Shenzhen">
- <Student name = "Milton" age = "22"> </student>
- <Student name = "lego" age = "23"> </student>
- <Teacher name = "Bruce" age = "27"> </teacher>
- <Teacher name = "Ziven" age = "28"> </teacher>
- </People>
First, build a JavaBean according to the XML document.
People. Java
Student. Java
Teacher. Java
Parsing Code:
Java code
- Package com. Test. xml;
- Import java. Io. file;
- Import java.net. urisyntaxexception;
- Import java. util. arraylist;
- Import java. util. iterator;
- Import java. util. List;
- Import org. dom4j. Document;
- Import org. dom4j. extends entexception;
- Import org. dom4j. element;
- Import org. dom4j. Io. saxreader;
- Import com. Test. xml. element. People;
- Import com. Test. xml. element. student;
- Import com. Test. xml. element. teacher;
- Public class xmlparser {
- @ Suppresswarnings ("unchecked ")
- Public static people parsexml (string xmlpath ){
- File xmlfile = new file (xmlpath );
- System. Out. println (xmlfile. getpath ());
- If (xmlfile. exists ()){
- Saxreader reader = new saxreader ();
- People = new people ();
- Try {
- // Read the document stream
- Document document = reader. Read (xmlfile );
- // Obtain the root node
- Element root = Document. getrootelement ();
- List <student> students = new arraylist <student> ();
- List <teacher> teachers = new arraylist <teacher> ();
- People. setcity (root. attributevalue ("city "));
- // Parse the student Node
- For (iterator = root. elementiterator ("student"); iterator. hasnext ();){
- Element estudent = (element) iterator. Next ();
- Student = new student (estudent. attributevalue ("name"), integer. parseint (estudent. attributevalue ("Age ")));
- Students. Add (student );
- }
- // Parse the teacher Node
- For (iterator = root. elementiterator ("teacher"); iterator. hasnext ();){
- Element eteacher = (element) iterator. Next ();
- Teacher = new teacher (eteacher. attributevalue ("name"), integer. parseint (eteacher. attributevalue ("Age ")));
- Teachers. Add (teacher );
- }
- People. setstudent (students );
- People. setteacher (teachers );
- System. Out. println ("parse success! ");
- } Catch (incluentexception e ){
- E. printstacktrace ();
- }
- Return people;
- } Else {
- System. Out. println ("file is not exist! ");
- Return NULL;
- }
- }
- Public static void main (string [] ARGs) throws urisyntaxexception {
- String xmlpath = "";
- Xmlpath = "D:/program files/eclipse-jee/workspace/test/src/COM/test/XML/people. xml ";
- System. Out. println ("file full path is" + xmlpath );
- // Parse people. xml
- People P = parsexml (xmlpath );
- // Process resolution results
- System. Out. println (P. getcity ());
- List <student> slist = P. getstudent ();
- List <teacher> tlist = P. getteacher ();
- For (student s: slist ){
- System. Out. println (S. getname () + "--" + S. getage ());
- }
- For (teacher T: tlist ){
- System. Out. println ();
- }
- }
- }
Java code
- Running result:
Java code
- Parse success!
- Shenzhen
- Milton -- 22
- Lego -- 23