07_XPath_01_入门
【工程截图】
【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>
【获取person.xml的Document对象,然后采集所需的数据,入门】
package com.Higgin.XPath; import java.io.File;
import java.io.IOException;
import java.util.List; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader; public class Demo01 { public static void main(String[] args)throws DocumentException,IOException {
//获取对应的Document对象
Document doc=new SAXReader().read(new File("./src/person.xml")); /**需求1:获取id属性值为88888的学生标签的sex属性
* 已知:<student id="88888" phone="15888888888" sex="男">
**/
Element stuElem=(Element) doc.selectSingleNode("//student[@id='88888']");
Attribute sexAttr=stuElem.attribute("sex"); //获取对应的Attribute属性对象
System.out.println(sexAttr.getText()); //打印属性对象的属性值 /**
* 需求2:打印多个满足要求的标签的文本
*/
List<Node> nameList= doc.selectNodes("//student/name[2]");
for(Node node:nameList){
System.out.println(node.getText());
}
}
}
【运行结果】
07_XPath_01_入门的更多相关文章
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- Angular2入门系列教程4-服务
上一篇文章 Angular2入门系列教程-多个组件,主从关系 在编程中,我们通常会将数据提供单独分离出来,以免在编写程序的过程中反复复制粘贴数据请求的代码 Angular2中提供了依赖注入的概念,使得 ...
- wepack+sass+vue 入门教程(三)
十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...
- wepack+sass+vue 入门教程(二)
六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...
- wepack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
随机推荐
- Oracle函数汇总
日期函数 1. select sysdate from dual 查询当前日期 2. select months_between() from dual 查询两个日期的月份差 3. select ad ...
- ASP.Net 使用SqlBulkCopy批量插入
批量插入,以前我的做法是生成一堆insert into的sql语句,然后用程序一次值行,来实现. 今天看到了ASP.Net里可以使用DataTable,先将数据写入到DataTable中,然后使用Sq ...
- Hibernate映射文件简单配置
<?xml version="1.0" ?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibe ...
- linux下Memcached安装以及PHP的调用
一:安装libevent 由于memcached安装时,需要使用libevent类库,所以先安装libevent 1.官网下载:http://libevent.org/ #wget https:/ ...
- 上struts2的xml在<result type="redirect">参数问题
今天做项目,我遇到了一个精彩的问题. 我需要在struts的xml中的<action>的<result>中配置type="redirect".同一时候须要传 ...
- devenv.exe - Assert Failure visual studio 2010
安装完成devexpress后启动vs提示 devenv.exe - assert failure 第一种在博客园找到的解决方案: 原因是机器上安装了framework 4.5 和4.5中文包,卸载 ...
- java_客户端防表单重复提交和服务器端session防表单重复提交
用户输入FormServlet链接 FormServlet-〉form.jsp->DoFormServlet FormServlet:产生token,放在session中 form.jsp:hi ...
- global 用法
<?php//$GLOBALS['he']="hechunhuae";function Test(){ //global $he; $GLOBALS['he']=" ...
- C语言结构体赋值2
#include <stdio.h> /** 上一个版本的name是固定大小的,不好,这次换用 *name然后 采用 堆的方式申请内存,起到用到少拿多少的一个方式. */ struct s ...
- jvm内存模型及分配参数
jvm内存模型 程序计数器:是一块很小的内存空间.当线程数量超过cpu数量时,线程之间根据时间片轮询抢夺cpu资源.每一个线程都必须用一个独立的程序计数器,用于记录下一条要运行的指令. java虚拟机 ...