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:/*
涵义:选择所有由星号之前的路径所定位的元素
例子1:root.selectNodes("/*")
结果1:得到的集合中只包含了restaurant节点
例子2:root.selectNodes("restaurant/company/*")
结果2:得到company节点下所有节点的集合
例子3:root.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
涵义:获得所有属性为id的Attribute对象集合
例子: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文件中所有标记为food和fruit的节点集合,本例子中有4个
相关推荐
VTOL-7-Nano-3D-Print for T1 Ranger
c1900-universalk9-mz.SPA.153-1.T.bin
常用命令_linux
卡瓦牙椅E70E80-Vsion中文使用说明书第三部分.pdf
linux命令、脚本、基础知识学习_Linux-study
发那科系统整套PMC梯形图设计调试维修 FANUC全套PMC设计 发那科标准PLC 详情从图2开始 内容很全 请仔细看完: 1.刀库程序设计(斗笠 圆盘 夹臂 机械手 伞型 都包括) 2.刀架程序(电动 液压 伺服 都包括) 3.操作方式(标准板 第三方板) 4.进给轴控制(轴运动 限位 回零) 5.主轴控制(换挡 定向 攻丝) 6.外围程序设计(卡盘 台尾 冷却 润滑 排屑机 照明灯 三色灯) 7.报警程序设计 等等,不一一列举,详细目录见下图。 该资料内含中间地址表,中文注释,一目了然,可以直接使用,省事省力。 电气工程师、维修工程师的好帮手。
基于ssm的个性化影片推荐系统设计与实现.docx
鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx 鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V1.0(1).docx鸿蒙OpenHarmony信创实训室建设方案V
linux_命令生成器_generator-mill-linux
初级入门吉他谱 guitar tab
linux(ubuntu系统)常用命令汇总_linux_commands
初级入门吉他谱 guitar tab
包含像素风中英文字体,鼠标手势普通状态和点击状态,仅用作技术分享学习研究,不可用于其他用途。
40个超有趣的Linux命令行彩蛋和游戏。_linux-funny-command
基于ssm的固定资产管理系统设计与实现2.docx
Chrome 官方色彩主题Serenity.zip
初级入门吉他谱 guitar tab
基数排序:基数排序(Radix Sort)是一种非比较型的整数排序算法,其基本思想是按照从最低位到最高位的顺序对数字进行排序。基数排序可以用于对整数或字符串进行排序,因为它实际上是对每个数字位进行排序,而不是直接比较数值大小。 工作原理 基数排序的核心思想是将整数按位数分割成不同的数字,然后按每个位数分别比较。具体步骤如下: 初始化桶:创建足够数量的桶来存储每一位的数字。通常情况下,使用 10 个桶来存放 0 到 9 的数字。 分配元素到桶:遍历数组中的每一个元素,并根据当前位数的值放入对应的桶中。 收集元素:按照桶的顺序收集元素,重新构建数组。 重复步骤 2 和 3:对于每一位重复上述过程,直到最高位为止。 基数排序的关键在于使用稳定的排序算法来处理每一位上的数字。常用的稳定排序算法包括计数排序(Counting Sort)或插入排序(Insertion Sort)。 基数排序的步骤 确定最大位数:首先找出待排序数组中的最大数,以此来确定需要处理的位数。 逐位排序:从最低位开始,逐位对数组进行排序。每次只对当前位上的数字进行排序,并保持其他位上的相对顺序不变。 示例 假设我们要
Chrome 官方色彩主题Oceanic.zip
初级入门吉他谱 guitar tab