使用DOM4J的步骤
以下是解析时使用DOM4J解析器文档使用的步骤。
导入XML相关的软件包。
创建一个SAXReader
从文件或数据流创建一个文档
通过调用document.selectNodes()获取使用XPath表达式所需的节点
提取根元素
遍历节点列表。
检查属性
检查子元素
导入XML相关的软件包
importjava.io.*;importjava.util.*;importorg.dom4j.*;
创建一个DocumentBuilder
SAXBuildersaxBuilder=newSAXBuilder();
从文件或数据流创建一个文档
FileinputFile=newFile("input.txt");SAXBuildersaxBuilder=newSAXBuilder();Documentdocument=saxBuilder.build(inputFile);
提取根元素
ElementclassElement=document.getRootElement();
Examine attributes
//returns specific attributevalueOf("@attributeName");
检查子元素
//returns first child nodeselectSingleNode("subelementName");
演示示例
这是输入需要解析xml文件:
dinkar
kad
dinkar
85
Vaneet
Gupta
vinni
95
jasvir
singn
jazz
90
演示示例:
DOM4JParserDemo.java
packagecom.yiibai.xml;importjava.io.File;importjava.util.List;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.Element;importorg.dom4j.Node;importorg.dom4j.io.SAXReader;publicclassDOM4JParserDemo{publicstaticvoidmain(String[]args){try{FileinputFile=newFile("input.txt");SAXReaderreader=newSAXReader();Documentdocument=reader.read(inputFile);System.out.println("Root element :"+document.getRootElement().getName());ElementclassElement=document.getRootElement();Listnodes=document.selectNodes("/class/student");System.out.println("----------------------------");for(Nodenode:nodes){System.out.println("\nCurrent Element :"+node.getName());System.out.println("Student roll no : "+node.valueOf("@rollno"));System.out.println("First Name : "+node.selectSingleNode("firstname").getText());System.out.println("Last Name : "+node.selectSingleNode("lastname").getText());System.out.println("First Name : "+node.selectSingleNode("nickname").getText());System.out.println("Marks : "+node.selectSingleNode("marks").getText());}}catch(DocumentExceptione){e.printStackTrace();}}}
这将产生以下结果:
Root element :class
----------------------------
Current Element :student
Student roll no :
First Name : dinkar
Last Name : kad
First Name : dinkar
Marks : 85
Current Element :student
Student roll no :
First Name : Vaneet
Last Name : Gupta
First Name : vinni
Marks : 95
Current Element :student
Student roll no :
First Name : jasvir
Last Name : singn
First Name : jazz
Marks : 90
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。