📅  最后修改于: 2023-12-03 15:01:32.794000             🧑  作者: Mango
在Java中,我们可以使用XPath表达式来解析XML文档。XPath是一种用于在XML文档中查找信息的语言,它可以很容易地获取节点、属性和元素的值等信息。
Java中自带了XPath解析器,我们可以很容易地使用它来解析XML文档。这篇文章将介绍如何使用Java XPath解析器来解析XML文档。
我们需要导入依赖包jaxp-api.jar
和xercesImpl.jar
,这两个包都可以在Maven中央库中找到。
XPath使用路径表达式来定位XML文档中的节点,路径表达式可以包含节点名称、节点类型、谓语等。
以下是XPath常用的路径表达式示例:
| 路径表达式 | 描述 | | -------------------- | --------------------------------------------------- | | / | 根节点 | | // | 选取节点,不考虑它们的位置 | | . | 当前节点 | | .. | 父节点 | | @ | 选取属性 | | * | 匹配任何元素节点 | | @* | 匹配任何属性节点 | | node() | 匹配任何类型的节点 | | //book[@price]>35 | 选取book元素,其中price属性的值大于35 | | /bookstore/book[2] | 选取bookstore元素的第二个book子元素 | | //book[last()] | 选取层级下最后一个book元素 | | //book[position()<3] | 选取前两个book元素 | | //book[author] | 选取所有具有author子元素的book元素 | | //book[title="Java"] | 选取所有title子元素的值为Java的book元素 |
以下代码片段演示了如何使用Java XPath解析器来解析XML文档。
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class XPathParser {
public static void main(String[] args) {
try {
// 解析XML文档
File file = new File("books.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(file);
// 初始化XPath解析器
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
// 使用XPath解析器解析XML文档
XPathExpression expr = xpath.compile("//book[price>35]/title/text()");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
// 打印结果
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上代码会打印出所有价格大于35的书的标题。输出结果:
Java编程思想(第4版)
本文介绍了Java中使用XPath解析器解析XML文档的详细步骤,包括依赖包、XPath语法和使用示例。XPath解析器方便易用,能够快速定位XML文档中的节点、属性和元素的值等信息。