xpath表达式常用操作

使用dom4j支持xpath的操作

可以直接获取到某个元素

第一种形式
/AAA/DDD/BBB: 表示一层一层的,AAA下面 DDD下面的BBB
在这里插入图片描述第二种形式
//BBB: 表示和这个名称相同,表示只要名称是BBB,都得到
在这里插入图片描述
第三种形式
*: 所有元素
在这里插入图片描述
第四种形式
** BBB[1]: 表示第一个BBB元素
×× BBB[last()]:表示最后一个BBB元素
在这里插入图片描述
第五种形式
** //BBB[@id]: 表示只要BBB元素上面有id属性,都得到

在这里插入图片描述
第六种形式
//BBB[@id=‘b1’] 表示元素名称是BBB,在BBB上面有id属性,并且id的属性值是b1
在这里插入图片描述

使用dom4j支持xpath具体操作

** 默认的情况下,dom4j不支持xpath
** 如果想要在dom4j里面是有xpath
	* 第一步需要,引入支持xpath的jar包,使用 jaxen-1.1-beta-6.jar
	** 需要把jar包导入到项目中

** 在dom4j里面提供了两个方法,用来支持xpath
	*** selectNodes("xpath表达式")
		- 获取多个节点
	*** selectSingleNode("xpath表达式")
		- 获取一个节点

使用xpath实现:查询xml中所有name元素的值

	** 所有name元素的xpath表示: //name
	** 使用selectNodes("//name");
	** 代码和步骤
	/*
	 * 1、得到document
	 * 2、直接使用selectNodes("//name")方法得到所有的name元素
	 * 
	 * */
		//得到document
		Document document = Dom4jUtils.getDocument(Dom4jUtils.PATH);
		//使用selectNodes("//name")方法得到所有的name元素
		List<Node> list = document.selectNodes("//name");
		//遍历list集合
		for (Node node : list) {
			//node是每一个name元素
			//得到name元素里面的值
			String s = node.getText();
			System.out.println(s);
		}

使用xpath实现:获取第一个p1下面的name的值

	* //p1[@id1='aaaa']/name
	* 使用到 selectSingleNode("//p1[@id1='aaaa']/name")
	* 步骤和代码
	/*
	 * 1、得到document
	 * 2、直接使用selectSingleNode方法实现
	 * 	- xpath : //p1[@id1='aaaa']/name
	 * */
	//得到document
	Document document = Dom4jUtils.getDocument(Dom4jUtils.PATH);
	//直接使用selectSingleNode方法实现
	Node name1 = document.selectSingleNode("//p1[@id1='aaaa']/name"); //name的元素
	//得到name里面的值
	String s1 = name1.getText();
	System.out.println(s1);
发布了24 篇原创文章 · 获赞 14 · 访问量 661

猜你喜欢

转载自blog.csdn.net/weixin_44860598/article/details/104531668
今日推荐