xml解析方式2------dom4j
来源:互联网 发布:宇宙的边界 知乎 编辑:程序博客网 时间:2024/05/16 07:39
dom4j是我最喜欢的一套解析组件,操作简便而且效率高。有了它,dom和sax可以光荣退休了.
下面是dom4j生成xml文件的代码
package dom4j;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;public class dom4j_writeXML_02 {
public static void main(String args[]) throws Exception, Exception{
/**
* 创建文档对象
*/
Document document=DocumentHelper.createDocument();
/**
*在文档对象下增加根节点
*/
Element root =document.addElement("addressList");
/**
* 在每一个节点下增加子节点
*/
Element linkMan=root.addElement("linkMan");
Element name=linkMan.addElement("name");
/**
* 给name节点添加属性
*/
name.addAttribute("id", "I am attribute");
Element email=linkMan.addElement("email");
/**
* 给name节点设置文本
*/
name.setText("我是最强的");
/**
* 给email节点设置文本
*/
email.setText("ekdfj@163.com");
/**
* 设置漂亮的输出格式(也可以设置紧凑的输出格式)
*/
OutputFormat format = OutputFormat.createPrettyPrint();
/**
* 以漂亮的格式,将xml文件输出到d:\dom4j.xml文件中
*/
XMLWriter writer = new XMLWriter(
new FileOutputStream(new File("d:"+File.separator+"dom4j.xml")),format);
writer.write(document);
}
}看看吧,是不是很方便,理解起来也很容易。真的很佩服设计者的技巧,他的addxxx()方法并不是返回空,而是返回一个节点。这样的话,我们就可以很容易的在某一个节点下增加子节点。
dom4j的读取xml能力也很强
package dom4j;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;import java.io.*;
import java.util.Iterator;public class dom4j_ReadXML_01 {
public static void main(String args[]) throws DocumentException, Exception{
/**
* 创建一个解析器
*/
SAXReader reader=new SAXReader();
/**
* 解析xml文档
*/
Document document=reader.read("d:"+File.separator+"dom4j.xml");
/**
* 获得文本的根节点
*/
Element root=document.getRootElement();
/**
* 获得根节点下面的全部子节点
*/
Iterator linkMans=root.elementIterator();
/**
* 遍历节点输出
*/
while(linkMans.hasNext()){
Element linkMan=(Element)linkMans.next();
System.out.println(linkMan.elementText("name"));
Element name=linkMan.element("name");
System.out.println(name.attribute("id").getName()+"="+name.attributeValue("id"));
System.out.println(linkMan.elementText("email"));
}
}
}老婆要求加的链接>>
- xml解析方式2------dom4j
- xml解析-dom4j方式
- xml解析dom4j xpath方式
- Dom4J方式创建/解析xml
- DOM4J方式创建解析XML
- 使用DOM4J方式解析XML
- xml文件--DOM4J方式解析xml文件
- dom4j iterator方式解析xml文件
- 用dom4j的方式解析xml文件
- 使用Dom4j解析xml文件---SAXReader方式
- 使用Dom4j解析xml文件---DomReader方式
- Dom4j方式解析XML乱码问题详解
- JDOM以及DOM4J方式解析XML
- JAVA 解析XML之JDOM、DOM4J方式
- Java解析XML之dom4j方式
- dom4j方式写入与解析XML
- Java DOM4J 方式解析XML文件
- XML解析-Dom4j的DOM解析方式更新XML
- 浅谈连接查询
- 数据仓库开发各部分需要的需求定义
- argument type mismatch
- JXL 操作
- 《大话处理器》连载——微架构(18) 指令的顺序提交
- xml解析方式2------dom4j
- 如何学好C语言[来自CoolShell]
- 正则迷雾
- ASP.NET MVC案例教程一
- struts2的工作原理
- ASP.NET分页控件示例
- Levenshtein Distance(LD)-计算两字符串相似度算法
- 求教高人:js怎么样实现左右两边复选框的点击同步?
- struts2.0的list、listKey和listValue属性