xpath使用

pom.xml依赖

<dependency>
	<groupId>dom4j</groupId>
	<artifactId>dom4j</artifactId>
	<version>1.6.1</version>
</dependency>
<dependency>
	<groupId>jaxen</groupId>
	<artifactId>jaxen</artifactId>
	<version>1.1.6</version>
</dependency>

测试xml

<?xml version="1.0" encoding="UTF-8"?>
<书架>
  <书>
    <书名 name="张三">书名1</书名>
    <作者>作者1</作者>
    <售价>121</售价>
  </书>
  <书>
    <书名>书名2</书名>
    <作者>作者2</作者>
    <售价>122</售价>
  </书>
</书架>
<?xml version="1.0" encoding="UTF-8"?>
<users>
	<user id="1" username="aaa" password="111" email="[email protected]"></user>
	<user id="2" username="bbb" password="222" email="[email protected]"></user>
</users>

测试demo

package com.tls.dom4j;

import java.io.File;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.junit.Test;
//xpath
public class Demo2 {
	@Test
	public void test1() throws Exception {
		SAXReader reader = new SAXReader();
		Document document = reader.read(new File("src/main/java/book.xml"));
		
		Node node = document.selectSingleNode("//作者");
		String text = node.getText();
		System.out.println(text);
	}
	//查找users.xml中是否有和用户名密码相匹配的用户
	@Test
	public void test2() throws Exception {
		SAXReader reader = new SAXReader();
		Document document = reader.read(new File("src/main/java/users.xml"));
		
		String username="aaa";
		String password="111";
		
		List nodes = document.selectNodes("//user[@username='"+username+"' and @password='"+password+"']");//这里使用and
		System.out.println(nodes.size());
	}
}
具体语法可以查看xpath的文档

猜你喜欢

转载自blog.csdn.net/u011244410/article/details/80863103