现在对XML文档的解析大部分都采用Dom4j,比如Hibernate和Sun的JAXP,Dom4j的文档看完感觉特别爽,至少比JAXP简单方便,下载地址为点击打开链接
下面将几个简单的及诶系例子贴上来
先把需要解析的XML文档拿上来
<?xml version="1.0" encoding="UTF-8"?> <书架> <书> <书名 name="XXXXX">java就业培训</书名> <作者>张孝祥</作者> <售价>109元</售价> <网上售价>209大洋</网上售价></书> <书> <书名>JavaScript开发详解</书名> <作者>陈显鹭</作者> <售价>15.00</售价> </书> </书架> 下面是代码
package com.bird.dom4j; import java.io.File; import java.io.FileWriter; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /** * @use 使用Dom4j进行解析XML * @author Bird * */ public class Dom4jTest { public static void read1() throws DocumentException{ SAXReader reader = new SAXReader();//创建解析器 Document document = reader.read(new File("d://book.xml"));//解析 Element root = document.getRootElement();//得到XML的根节点 Element book = (Element) root.elements("书").get(1); System.out.println(book.elementText("书名")); } public static void read2() throws DocumentException{//得到标签的属性 SAXReader reader = new SAXReader();//创建解析器 Document document = reader.read(new File("d://book.xml"));//解析 Element root = document.getRootElement(); Element book = (Element) root.elements("书").get(0); System.out.println(book.element("书名").attributeValue("name")); } public static void add1() throws DocumentException, Exception{ SAXReader reader = new SAXReader();//创建解析器 Document document = reader.read(new File("d://book.xml"));//解析 Element book = document.getRootElement().element("书"); book.addElement("网上售价").setText("209大洋"); XMLWriter writer = new XMLWriter(new FileWriter( "d://book.xml" ));//更新到磁盘中 writer.write( document ); writer.close(); } public static void main(String[] args) throws Exception{ // read2(); add1(); } }