一、DOM4J
1、特点:最优秀的一个,集易用和性能于一身。开放源代码(需要导入外部jar包:dom4j-1.6.1.jar)2、场合:使用DOM4J
Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为,
@H_502_19@ |
|||||||||
CDATA 定义了XML CDATA 区域
@H_502_19@ |
|||||||||
CharacterData
@H_502_19@ |
CharacterData是一个标识借口,标识基于字符的节点。如CDATA,Comment,Text.
@H_502_19@ |
||||||||
Comment 定义了XML注释的行为
@H_502_19@ |
|||||||||
定义了XML文档
@H_502_19@ |
|||||||||
DocumentType
@H_502_19@ |
DocumentType 定义XML DOCTYPE声明
@H_502_19@ |
||||||||
Element定义XML 元素
@H_502_19@ |
|||||||||
ElementHandler
@H_502_19@ |
ElementHandler定义了 Element 对象的处理器
@H_502_19@ |
||||||||
ElementPath
@H_502_19@ |
|||||||||
Entity定义 XML entity
@H_502_19@ |
|||||||||
Node为所有的dom4j中XML节点定义了多态行为
@H_502_19@ |
|||||||||
NodeFilter
@H_502_19@ |
NodeFilter 定义了在dom4j节点中产生的一个滤镜或谓词的行为(predicate)
@H_502_19@ |
||||||||
ProcessingInstruction
@H_502_19@ |
ProcessingInstruction 定义 XML 处理指令.
@H_502_19@ |
||||||||
Text 定义XML 文本节点.
@H_502_19@ |
|||||||||
Visitor 用于实现Visitor模式.
@H_502_19@ |
|||||||||
XPath 在分析一个字符串后会提供一个XPath 表达式
@H_502_19@ |
表达式 |
描述 |
||||||||
nodename |
选取当前节点的所有子节点 |
||||||||
/ |
从根节点选取 |
||||||||
// |
从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
||||||||
. |
选取当前节点 |
||||||||
.. |
选取当前节点的父节点 |
||||||||
@ |
选取属性 |
结果 |
|||||||||
bookstore |
选取 bookstore 元素的所有子节点 |
||||||||
/bookstore |
选取根元素 bookstore |
||||||||
bookstore/book |
选取bookstore 下名字为 book的所有子元素。 |
||||||||
//book |
选取所有 book 子元素,而不管它们在文档中的位置。 |
||||||||
bookstore//book |
选取bookstore 下名字为 book的所有后代元素,而不管它们位于 bookstore 之下的什么位置。 |
||||||||
//@lang |
选取所有名为 lang 的属性。 |
选取属于 bookstore 子元素的第一个 book 元素。 |
|||||||||
/bookstore/book[last()] |
选取属于 bookstore 子元素的最后一个 book 元素。 |
||||||||
/bookstore/book[last()-1] |
选取属于 bookstore 子元素的倒数第二个 book 元素。 |
||||||||
/bookstore/book[position()<3] |
选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 |
||||||||
//title[@lang] |
选取所有拥有名为 lang 的属性的 title 元素。 |
||||||||
//title[@lang='eng'] |
选取所有 title 元素,要求这些元素拥有值为 eng 的 lang 属性。 |
||||||||
/bookstore/book[price>35.00] |
选取所有 bookstore 元素的 book 元素,要求book元素的子元素 price 元素的值须大于 35.00。 |
||||||||
/bookstore/book[price>35.00]/title |
选取所有 bookstore 元素中的 book 元素的 title 元素,要求book元素的子元素 price 元素的值须大于 35.00 |
* |
匹配任何元素节点 |
||||||||
@* |
匹配任何属性节点 |
||||||||
node() |
匹配任何类型的节点 |
//* |
选取文档中的所有元素 |
||||||
//title[@*] |
选取所有带有属性的 title 元素。 |
||||||||
路径表达式 |
@H_416_5027@ |||||||||
//book/title|//book/price |
@H_416_5027@ |||||||||
//title|//price |
@H_416_5027@ |||||||||
/bookstore/book/title|//price |
@H_416_5027@
ancestor |
选取当前节点的所有先辈(父、祖父等) |
||||||||
ancestor-or-self |
选取当前节点的所有先辈(父、祖父等)以及当前节点本身 |
||||||||
attribute |
选取当前节点的所有属性 |
||||||||
child |
选取当前节点的所有子元素。 |
||||||||
descendant |
选取当前节点的所有后代元素(子、孙等)。 |
||||||||
descendant-or-self |
选取当前节点的所有后代元素(子、孙等)以及当前节点本身。 |
||||||||
following |
选取文档中当前节点的结束标签之后的所有节点。 |
||||||||
namespace |
选取当前节点的所有命名空间节点 |
||||||||
parent |
选取当前节点的父节点。 |
||||||||
preceding |
选取文档中当前节点的开始标签之前的所有节点。 |
||||||||
preceding-sibling |
选取当前节点之前的所有同级节点。 |
||||||||
self |
选取当前节点。 |
child::book |
选取所有属于当前节点的子元素的 book 节点 |
||||||
attribute::lang |
选取当前节点的 lang 属性 |
||||||||
child::* |
选取当前节点的所有子元素 |
||||||||
attribute::* |
child::text() |
选取当前节点的所有文本子节点 |
|||||||
child::node() |
descendant::book |
选取当前节点的所有 book 后代 |
|||||||
ancestor::book |
选择当前节点的所有 book 先辈 |
||||||||
ancestor-or-self::book |
选取当前节点的所有book先辈以及当前节点(假如此节点是book节点的话) |
||||||||
child::*/child::price |
选取当前节点的所有 price 孙。 |
运算符 |
描述 |
实例 |
返回值 |
||||||
| |
计算两个节点集 |
//book | //cd |
返回所有带有 book 和 ck 元素的节点集 |
||||||
+ |
加法 |
6 + 4 |
10 |
||||||
- |
减法 |
6 - 4 |
2 |
||||||
* |
乘法 |
6 * 4 |
24 |
||||||
div |
除法 |
8 div 4 |
= |
等于 |
price=9.80 |
如果 price 是 9.80,则返回 true。 如果 price 是 9.90,则返回 fasle。 |
|||
!= |
不等于 |
price!=9.80 |
如果 price 是 9.90,则返回 true。 如果 price 是 9.80,则返回 fasle。 |
||||||
< |
小于 |
price<9.80 |
如果 price 是 9.00,则返回 true。 如果 price 是 9.90,则返回 fasle。 |
||||||
<= |
小于或等于 |
price<=9.80 |
> |
大于 |
price>9.80 |
>= |
大于或等于 |
price>=9.80 |
如果 price 是 9.90,则返回 true。 如果 price 是 9.70,则返回 fasle。 |
or |
或 |
price=9.80 or price=9.70 |
如果 price 是 9.80,则返回 true。 如果 price 是 9.50,则返回 fasle。 |
||||||
and |
与 |
price>9.00 and price<9.90 |
如果 price 是 9.80,则返回 true。 如果 price 是 8.50,则返回 fasle。 |
||||||
mod |
计算除法的余数 |
5 mod 2 |
1 |