使用dom4j中的XPath查询

http://www.ibm.com/developerworks/cn/xml/x-injava/#N100FD

为了方便用户更加快捷的查询,Dom4j支持灵活的Xpath,下面是经常用的语法

1.       格式:/element

涵义:表示到一个element元素的绝对路径

例子:root.selectSingleNode("restaurant/company");

结果:表示xml文件中根节点下的company节点

2.       格式:// element

涵义:表示在父节点下,所有名叫element的节点元素,不论层级

例子:root.selectNodes("//food")

结果:xml文件中,所有标记为food节点的集合

3.       格式1/*

涵义:选择所有由星号之前的路径所定位的元素

例子1root.selectNodes("/*")

结果1:得到的集合中只包含了restaurant节点

例子2root.selectNodes("restaurant/company/*")

结果2:得到company节点下所有节点的集合

例子3root.selectNodes("*/*/*/fruit")

结果3:得到除根节点下满足第四层元素为fruit的节点集合,本例子中只有一个

4.       格式:/aa/bb[n]   n>=1

涵义1:表示aa节点下标记为bb的第n个元素

例子:restaurant.selectSingleNode("company/service/foods/food[2]")

结果:获得xml文件中foods节点下的第二个food节点

格式2/aa/bb[last()]   

涵义:表示aa节点下标记为bb的最后一个元素

例子:company.selectSingleNode("service/foods/food[last()]")

结果2:获得xml文件中foods节点下最后一个food节点

5.       格式1//@id

涵义:获得所有属性为idAttribute对象集合

例子:root.selectNodes("//@price");

结果:获得xml文件中所有属性名为price的属性集合,本例子中共有五个

格式2//name[@id]

涵义:获得所有属性为id的,并且标记为name节点元素集合

例子:root.selectNodes("//food[@price")];

结果:获得所有属性名为price的并且标记为food的节点集合,本例子中共有4

格式3//name[@*] 

涵义:获得所有任意属性名的,并且标记为name节点元素集合

例子:root.selectNodes("//food[@*")];

结果:获得有任意属性名的并且标记为food的节点集合,本例子中共有4

格式4//name[not(@*)] 

涵义:获得所有满足没有属性名的标记为name的节点元素集合

例子:root.selectNodes("//food[not(@*)]");

结果:获得所有形式如<food/>的节点集合,本例子中共有0

格式5//*[not(@*)] 

涵义:获得所有满足没有属性名的节点元素集合

例子:root.selectNodes("//*[not(@*)]");

结果:获得xml文件中所有没有属性的节点集合,本例子中共有10

6.       格式://name[@id=’n’]

涵义:获得所有属性为id的,其值等于n的,并且标记为name节点元素集合

例子:root.selectSingleNode ("//food[@price ='2'];

结果:获得xml文件中标记为food,并且其price属性的值为2的节点

7.       格式://aaa | //bbb

涵义:|表示与关系获得文档中所有标记为aaa或者bbb的元素集合

例子:root.selectNodes("//food | fruit");

结果:获得xml文件中所有标记为foodfruit的节点集合,本例子中有4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值