dom4j 使用总结
2015-06-06 20:01
183 查看
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件
dom4j的使用方法简单总结来说如下:
①可以创建一个新的xml文件
②利用SAXReader和File对象创建一个已存在的xml文件的一个Document对象
③利用Document对象的getRootElement()方法获取根节点,返回值类型为Element
④利用根节点,可以用迭代器遍历子节点,也可以直接利用XPATH语法查找节点,对节点元素、属性读取或更改
⑤将更改写入xml文件保存
下面来看简单的实例:
①创建一个新的xml文件,这是dom4j官方文档中的一个例子
②利用SAXReader和File对象或xml的URL创建一个已存在的xml文件的一个Document对象
这里是dom4j官方文档中利用xml文件URL创建Document对象的一个例子:
下面是我写的用SAXReader和File创建Document对象的例子:
③利用Document对象的getRootElement()方法获取根节点,返回值类型为Element
④用迭代器遍历子节点,也可以直接利用XPATH语法查找节点,对节点元素、属性读取或更改
利用迭代器遍历:
利用XPATH语法查找节点:
Element类中的attribute(String name)方法和element(String name)方法分别可以获取节点的属性对象和某一子节点对象
elements(String name)方法可以返回名为name的子节点的列表List。
get(int index)方法可以获取本节点下以index索引的节点
getName()方法可以获取本节点的名字(name)
attributeValue(String name)方法以及Attribute类中的getValue()方法可以获取本节点name属性的值
getText()方法可以返回本节点的文本内容
elementText(String name)方法可以获取name子节点的文本内容
remove(Attribute attribute)方法和remove(Element element)方法分别可以移除本节点的某属性和某子节点
⑤将更改写入xml文件保存
官方文档中的例子:
博客园博文地址:dom4j 的使用
dom4j的使用方法简单总结来说如下:
①可以创建一个新的xml文件
②利用SAXReader和File对象创建一个已存在的xml文件的一个Document对象
③利用Document对象的getRootElement()方法获取根节点,返回值类型为Element
④利用根节点,可以用迭代器遍历子节点,也可以直接利用XPATH语法查找节点,对节点元素、属性读取或更改
⑤将更改写入xml文件保存
下面来看简单的实例:
①创建一个新的xml文件,这是dom4j官方文档中的一个例子
import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Foo { public Document createDocument() { Document document = DocumentHelper.createDocument(); Element root = document.addElement( "root" ); Element author1 = root.addElement( "author" ) .addAttribute( "name", "James" ) .addAttribute( "location", "UK" ) .addText( "James Strachan" ); Element author2 = root.addElement( "author" ) .addAttribute( "name", "Bob" ) .addAttribute( "location", "US" ) .addText( "Bob McWhirter" ); return document; } }
②利用SAXReader和File对象或xml的URL创建一个已存在的xml文件的一个Document对象
这里是dom4j官方文档中利用xml文件URL创建Document对象的一个例子:
import java.net.URL; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public class Foo { public Document parse(URL url) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(url); return document; } }
下面是我写的用SAXReader和File创建Document对象的例子:
import java.io.File; import java.io.IOException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public class Foo { public Document parse() throws DocumentException ,IOException{ SAXReader reader = new SAXReader(); File file = new File("Student.xml"); Document document = reader.read(file); return document; } }
③利用Document对象的getRootElement()方法获取根节点,返回值类型为Element
Element rootElement = document.getRootElement();
④用迭代器遍历子节点,也可以直接利用XPATH语法查找节点,对节点元素、属性读取或更改
利用迭代器遍历:
public void bar(Document document) throws DocumentException { Element root = document.getRootElement(); //迭代root的子节点 for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); // do something } // 迭代root的名为"foo"的子节点 for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) { Element foo = (Element) i.next(); // do something } // 迭代root的属性 for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); // do something } }
利用XPATH语法查找节点:
public void bar(Document document) { List list = document.selectNodes( "//foo/bar" ); Node node = document.selectSingleNode( "//foo/bar/author" ); String name = node.valueOf( "@name" ); } public void findLinks(Document document) throws DocumentException { List list = document.selectNodes( "//a/@href" ); for (Iterator iter = list.iterator(); iter.hasNext(); ) { Attribute attribute = (Attribute) iter.next(); String url = attribute.getValue(); } }
Element类中的attribute(String name)方法和element(String name)方法分别可以获取节点的属性对象和某一子节点对象
elements(String name)方法可以返回名为name的子节点的列表List。
get(int index)方法可以获取本节点下以index索引的节点
getName()方法可以获取本节点的名字(name)
attributeValue(String name)方法以及Attribute类中的getValue()方法可以获取本节点name属性的值
getText()方法可以返回本节点的文本内容
elementText(String name)方法可以获取name子节点的文本内容
remove(Attribute attribute)方法和remove(Element element)方法分别可以移除本节点的某属性和某子节点
⑤将更改写入xml文件保存
官方文档中的例子:
import org.dom4j.Document; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; public class Foo { public void write(Document document) throws IOException { // lets write to a file XMLWriter writer = new XMLWriter( new FileWriter( "output.xml" ) ); writer.write( document ); writer.close(); // Pretty print the document to System.out OutputFormat format = OutputFormat.createPrettyPrint(); writer = new XMLWriter( System.out, format ); writer.write( document ); // Compact format to System.out format = OutputFormat.createCompactFormat(); writer = new XMLWriter( System.out, format ); writer.write( document ); } }
博客园博文地址:dom4j 的使用
相关文章推荐
- dom4j 使用总结
- Linux学习笔记之权限与命令之间的关系(重要)及文件与目录知识总结
- VMware下Ubuntu 14.04静态ip配置
- varnish详解
- nyoj22素数求和问题
- 数据库——怎样实现数据完整性
- unix-ln 命令
- python 将命令行执行的屏幕输出赋值到out变量
- 设置64位机器上的IIS(IIS6/IIS7)兼容32位程序
- 三层视频总结
- java和php实现JSON-RPC 实例
- 详解数据库语言中的null值
- 解决mongodb的安装mongod命令不是内部或外部命令
- 解决mongodb的安装mongod命令不是内部或外部命令
- APP的测试
- 运行及总结
- Ubuntu安装jdk
- 解决LD_PRELOAD无法截获printf的问题
- 6,6 教师兼干部类
- mysql-查看全局变量设置