使用DOM与XPATH解析一个Document对象的一般过程:
DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true); // never forgetthis!
DocumentBuilder builder =factory.newDocumentBuilder();
Document doc =builder.parse("books.xml");
到目前为止,这仅仅是标准的 JAXP 和 DOM,没有什么新鲜的。接下来创建 XPathFactory:
XPathFactory factory =XPathFactory.newInstance();
然后使用这个工厂创建 XPath 对象:
XPath xpath = factory.newXPath();
XPath 对象编译 XPath 表达式:
PathExpression expr =
xpath.compile("//book[author='NealStephenson']/title/text()");
直接求值
如果 XPath 表达式只使用一次,可以跳过编译步骤直接对XPath 对象静态调用 evaluate() 方法。但是,如果同一个表达式要重复使用多次,编译可能更快一些。
最后,计算 XPath 表达式得到结果。表达式是针对特定的上下文节点计算的,在这个例子中是整个文档。还必须指定返回类型。这里要求返回一个节点集:
Object result = expr.evaluate(doc,XPathConstants.NODESET);
可以将结果强制转化成 DOM NodeList,然后遍历列表得到所有的标题:
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength();i++) {
System.out.println(nodes.item(i);
}
本文详细介绍了如何使用DOM与XPATH解析XML文档的过程,包括创建Document对象、XPath对象,以及如何通过XPath表达式获取特定节点的详细信息。
1533

被折叠的 条评论
为什么被折叠?



