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中经常使用的一些方法:
一、从文件获取Document对象
xml是存储内存活着硬盘等介质中的数据,必须通过读取才能生成Document对象。
建立一个读取工具,
SAXReader reader = SAXReader()
而后,读取文档
read(File file) 或者read(InputStream in) 来读入并生成Document对象:
Document document = reader.read();
固然这个读取工具不少,读入的方式也不少,原理就是这样的。
二、从String获取Document对象
Document document = DocumentHelper.parseText(String text)
三、将xml转为String
Node.asXML()
Node这个在这里是接口,其余Attribute, Branch, CDATA, CharacterData, Comment, Document, DocumentType, Element, Entity, ProcessingInstruction, Text都实现了Node接口,所以从这些对象上也可使用asXML() 方法。
四、获取xml文档的根元素
Element rootElement = document.getRootElement()
五、有关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返回。