07_XPath_02_常用语法
【工程截图】

【person.xml】
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="88888" phone="15888888888" sex="男">
<name>张三</name>
<name>张三2</name>
<age>18</age>
<school>清华</school>
</student>
<student id="99999" phone="15999999999" sex="女">
<name>李四</name>
<name>李四2</name>
<age>28</age>
<school>北大</school>
</student>
<student phone="15666666666" sex="男">啦啦啦</student>
<AAAA>
<student id="AAA">AAA哈哈哈</student> <!-- student干扰项 -->
<aa1>aa111</aa1>
<aa2>aa222</aa2>
</AAAA>
<BBBB>
<student id="BBB" sex="女">BBB哈哈哈</student> <!-- student干扰项 -->
</BBBB>
</students>
【共用的打印节点路径和内容的方法】方便查看
public static void printNodes(String xpath,Document doc){
List<Node> list=doc.selectNodes(xpath);
for(Node node:list){
System.out.println("【路径】"+node.getPath()+" 【内容】"+node.getText());
}
}
【1.绝对路径 / 】
public static void main(String[] args) throws DocumentException {
Document doc=new SAXReader().read(new File("./src/person.xml"));
String xpath="";
//后面的代码分别代替下面的"===="内的内容
=================================================================
/**
* 1. "/" 绝对路径 表示从xml的根位置开始
*/
xpath="/students"; //打印结果1
xpath="/students/student/name"; //打印结果2
==================================================================
printNodes(xpath,doc); //调用上面打印路径和内容的方法 (分别注释)
}
【打印结果1】

【打印结果2】

【2. 相对路径 // 】
/**
* 2. "//" 相对路径 表是不分任何层次结构的选择元素
*/
xpath="//student/age"; //打印结果1
xpath="//name"; //打印结果2
【打印结果1】

【打印结果2】

【3.通配符 *】
/**
* 3. "*" 通配符 表示匹配所有元素
*/
xpath="/students/*"; //打印结果1
xpath="/students/student/*"; //打印结果2
【打印结果1】

【打印结果2】

【4.条件 [ ] 】
/**
* 4. "[]" 条件 表好似选择什么条件下的元素
*/
//带有id属性的标签
xpath="//student[@id]"; //打印结果1
//第3个student标签
xpath="//student[3]"; //打印结果2
//选择最后一个student标签
xpath="//student[last()]"; //打印结果3
【打印结果1】

【打印结果2】

【打印结果3】

【5. 属性 "@"】
/**
* 5. "@" 属性 表好似选择属性节点
*/
xpath="//@id"; //打印结果1
xpath="//student[not(@id)]"; //打印结果2
xpath="//student[@id='BBB' and @sex='女']"; //打印结果3
【打印结果1】

【打印结果2】

【打印结果3】

【6. 文本 text()】
/**
* 6. text() 表示选择文本内容
*/
xpath="//name/text()"; //打印结果1
//选择name为李四的name标签
xpath = "//student/name[text()='李四']";//打印结果2
【打印结果1】

【打印结果2】

07_XPath_02_常用语法的更多相关文章
- Markdown通用的常用语法说明
前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...
- Markdown简介以及常用语法
Markdown简介以及常用语法 最近发现用markdown记录东西很方便,感觉和emacs的org mode很类似,但是windows下使用emacs不是很方便.特此记录一下markdown常用的语 ...
- Sql常用语法以及名词解释
Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...
- Markdown常用语法
什么是Markdown Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档. 通过Markdown简单的语法,就可以使普通文本内容具有 ...
- 2 hive的使用 + hive的常用语法
本博文的主要内容有: .hive的常用语法 .内部表 .外部表 .内部表,被drop掉,会发生什么? .外部表,被drop掉,会发生什么? .内部表和外部表的,保存的路径在哪? .用于创建一些临时表存 ...
- sql 常用语法汇总
Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...
- ES6常用语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- python MVC、MTV 框架介绍 Django 模板系统常用语法
Django 框架简介一.MVC框架和MTV框架1.MVC 全名Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分.优势: 耦合性低 重用性高 生命 ...
- PHP中Smarty引擎的常用语法
PHP中Smarty引擎的常用语法 输出今天的日期: {$smarty.now|date_format:"%H:%M %A, %B %e, %Y"} 实际上用到了PHP的time( ...
随机推荐
- paip.云计算以及分布式计算的区别
paip.云计算以及分布式计算的区别 云计算的特点 1 网格计算 2 分布式计算 2 云计算以及网格计算以及分布式计算的区别 2 作者Attilax 艾龙, EMAIL:1466519819@qq ...
- Python中如何把一个UTC时间转换为本地时间
需求: 将20141126010101格式UTC时间转换为本地时间. 在网上搜了好长时间都没有找到完美的解决方案.有的引用了第三方库,这就需要在现网安装第三方的软件.这个是万万不可的.因为真实环境不一 ...
- Finite Difference Method with Mathematica
Euler's method
- ABAP ALV 颜色设置(行,列,单元格)
BCALV_EDIT_03 http://blog.sina.com.cn/s/blog_a87b19300102who3.html 关于ALV表格颜色,这种需求在项目中会经常用到. 列颜色 列的颜色 ...
- JNI-使用RegisterNatives注册本地方法
转自: http://blog.chinaunix.net/uid-26009923-id-3410141.html 1. 以前在jni中写本地方法时,都会写成 Java_com_example_he ...
- HDU 5500 Reorder the Books 贪心
Reorder the Books Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...
- Codeforces Round #322 (Div. 2) B. Luxurious Houses 水题
B. Luxurious Houses Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/pr ...
- Eclipse 开发WEB项目所遇问题 WebContent WebRoot
原文:http://blog.sina.com.cn/s/blog_525960510100jo0j.html 最近在做Web 项目时,新建了一个WEB 项目,如webdemo,eclipse默认的b ...
- PROC简单的用例--VC连接ORACLE
操作系统:windows 7 数据库版本号:oracle 10g VS版本号:VS2010 前言:连接ORACLE有许多方法,这里只PROC外壳,说明如何连接oracle,有事吗,希望你告诉我指出,一 ...
- android Animation 动画效果介绍
Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动 ...