Dom4j应用总结

文章不错,我取了里面的Document转为String的方法,简单,方便
 Dom4j应用总结
2008-05-23 16:36:15
<!--showHead end-->
标签: Dom4j xml
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://lavasoft.blog.51cto.com/62575/78450
<!--正文 begin-->
Dom4j应用总结
 
Dom4j是一个开源的java xml解析处理工具。是Java解析处理xml的首选工具。
 
要用好Dom4j,必须先理解xml DOM模型。举个简单例子说明下:
 
比如有个person.xml
<? xml version ="1.0" encoding ="GBK" ?>
< person no ="234" >
     < name >
         < firstname ></ firstname >
         < lastname ></ lastname >
     </ name >
     < age >55 </ age >
     < sex >Man </ sex >
</ person >
 
第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码GBK。
<person>是xml的根元素,no是<person>元素的一个属性(Attribute),属性值为234。属性 (Attribute) 提供关于元素的额外信息。
<name>是一个<person>元素(Element)的子元素,<firstname>、<lastname>是其<name>的子元素,其值分别为“王、八”。呵呵。
通过这个xml,你可以知道王八的编号、姓名、年龄、性别。
 
XML DOM (XML Document Object Model) 定义一套访问和操作 XML 文档的标准方法。
 
DOM 把 XML 文档作为树结构来查看。能够通过 DOM 树来访问所有元素。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点(Node)。
 
Dom4j是XML DOM的一种实现。因此DOM的概念和思想在Dom4j是一样的。
 
下面总结下DOM4j中常用的一些方法:
 
1、从文件获取 Document对象
xml是存储内存活着硬盘等介质中的数据,必须经过读取才能生成 Document对象。
创建一个读取工具,
SAXReader reader = SAXReader()
然后,读取文档
read(File file) 或者read(InputStream in) 来读入并生成 Document对象:
Document document = reader.read();
当然这个读取工具很多,读入的方式也很多,原理就是这样的。
 
2、从 String获取 Document对象
Document document = DocumentHelper.parseText( String text)
 
3、将xml 转为 String
Node.asXML()
Node这个在这里是接口,其他Attribute, Branch, CDATA, CharacterData, Comment, Document, DocumentType, Element, Entity, ProcessingInstruction, Text都实现了Node接口,因此从这些对象上也可以使用asXML() 方法。
 
4、获取xml文档的根元素
Element rootElement = document.getRootElement()
 
5、有关Element的最常用到的api
attributeValue( String name) :获取元素 String值。
elementIterator() :返回元素的所有子元素的Iterator迭代器。
elements() :返回元素包含所有子元素List。
getParent() :获取父元素Element。
getPath() :获取自己的xpath。
detach() :移除自己。
getName() :获取节点的名称。
selectNodes( String xpathExpression) :通过XPATH获取节点。
selectSingleNode( String xpathExpression) :通过XPATH获取一个节点。
getDocument() :作为一个 Document返回。
 
有空在继续添加。
 
 

本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/78450

你可能感兴趣的:(xml,Blog)