Java认证辅导之关于Java语言的XPathAPI(3)# X6 i: z$ [/ F
直接求值8 Y7 N b6 c" s( D. D& V
如果 XPath 表达式只使用一次,可以跳过编译步骤直接对XPath 对象调用 evaluate() 方法。但是,如果同一个表达式要重复使用多次,编译可能更快一些。- ^9 V+ w2 a% t
最后,计算 XPath 表达式得到结果。表达式是针对特定的上下文节点计算的,在这个例子中是整个文档。还必须指定返回类型。这里要求返回一个节点集:
. K( {1 w# u5 R5 p8 b! X
4 P2 s& Q+ V; c( }, {, w: ]Object result = expr.evaluate(doc, XPathConstants.NODESET); 可以将结果强制转化成 DOM NodeList,然后遍历列表得到所有的标题:# a4 j: l9 f( F( \( |+ U, O' M$ ^
t% w* S9 |9 qNodeList nodes = (NodeList) result; for (int i = 0; i < nodes.getLength(); i++) { System.out.println(nodes.item(i).getNodeValue()); } 清单 4 把上述片段组合到了一个程序中。还要注意,这些方法可能抛出一些检查异常,这些异常必须在 throws 子句中声明,但是我在上面把它们掩盖起来了: |