1. Dom4J
<students>
<student>
<name>吴飞</name>
<college>java学院</college>
<telephone>62354666</telephone>
<notes>男,1982年生,硕士,现就读于北京邮</notes>
</student>
</students>
第一步:创建解析器
SAXReader reader = new SAXReader();
第二步:Document对象:通过解析器read方法获取
Document doc = reader.read("xxxx.xml");
第三步:获取 xml根节点
Element root = doc.getRootElement();
第四步:遍历解析子节点
遍历 root根节点下的student子节点
for(Iterator iter = root.elementIterator();iter.hasNext();){
获取 student 节点对象
Element stuElement = (Element)iter.next();
遍历 stuElement 节点下的所有子节点:name,colleage,telephone,notes
for(Iterator innerIter = stuElement.elementIterator();innerIter.hasNext();){
获取 student节点下的子节点对象
Element innerElement = (Element)innerIter.next();
通过 innerElement 的 getName()获取节点名称,getStringValue()获取节点值
innerElement.getName();
innerElement.getStringValue();
2.SAX
创建解析工厂
SAXParserFactory saxParserFactory = SAXParaserFactory.newInstance();
创建解析器
SAXParser saxParser = saxParserFactory.newSAXParser();
执行parser方法,传入两个参数:xml文件路径、事件处理器
saxParser.parser(“xxxx.xml”, new MyDefaultHander());
(4) 创建一个类 MyDefaultHander(),继承 DefaultHander类,重写三个方
a. startElement 获取开始标签,重要的两个参数说明
qName:把标签名称返回
attributes:返回标签中的属性对象
b. character 获取标签文本内容
c. endElement 获取结束标签
3.Dom4j + xPath
<config>
<database-info>
<driver-name>com.mysql.jdbc.Driver</driver-name>
<url>jdbc:mysql://192.168.7.151:8080/home</url>
<user>root</user>
<password>123</password>
</database-info>
</config>
第一步:通过 SAXReader 获取解析器
SAXReader reader = new SAXReader();
第二步:通过解析器的 read方法获取Document对象
Document doc = reader.read(“sys-config.xml”);
第三步:通过 xpath 语法获取driver-name 节点
Element driverNameElt = doc.selectObject(“/config/database-info/driver-name”);
String driverName= driverNameElt.getStringValue();