javax.xml.xpath.XPath 方式读取
时间: 2024-12-23 11:25:39 浏览: 5
`javax.xml.xpath.XPath`是Java平台标准版提供的一种API,用于在XML文档中进行XPath查询。XPath是一种强大的语言,它允许你在XML文档中定位节点、属性和文本,类似于CSS选择器在HTML中的作用。
如果你想要使用`XPath`来读取`<vec:plot_no>`元素的值,首先需要创建一个XPath对象,并定义你要查询的路径表达式。以下是一个基本的步骤示例:
```java
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
import java.io.StringReader;
public class XPathExample {
public static void main(String[] args) {
try {
// 解析XML字符串到Document对象
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
String xmlStr = ...; // 替换为你的XML字符串
Document doc = dBuilder.parse(new InputSource(new StringReader(xmlStr)));
// 初始化XPath工厂并创建XPath实例
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
// 定义XPath表达式,选取所有的vec:plot_no元素
String expression = "/wfs:ValueCollection/wfs:member/vec:plot_no";
// 执行查询并获取结果
NodeList nodeList = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);
// 遍历并打印结果
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element) nodeList.item(i);
String plotNo = element.getTextContent();
System.out.println("Plot No: " + plotNo);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个例子中,`"/wfs:ValueCollection/wfs:member/vec:plot_no"`是XPath表达式,它从根节点开始,沿着wfs:ValueCollection->wfs:member,然后找到所有名为vec:plot_no的元素。
阅读全文