我试图弄清楚如何使用Xpath表达式来验证XPath表达式中只有一个匹配的节点.这是一些示例XML:
<a>
<b>
<c>X:1 Y:0</c>
<c>X:1 Y:0</c>
<c>X:2 Y:0</c>
</b>
<b>
<c>X:1 Y:0</c>
<c>X:2 Y:0</c>
</b>
</a>
Run Code Online (Sandbox Code Playgroud)
所以,我尝试了与此类似的代码,但它不起作用:
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
try {
XPathExpression expr = xpath.compile( "count(//a/b/c)" ) );
} catch ( XPathExpressionException e ) {
printErr( e );
}
if ( expr == true ) {
// edit XML node
}
Run Code Online (Sandbox Code Playgroud)
应该有一种方法让count表达式返回一个Boolean = true.我怎么得到这个?
也许是这样的:
XPathExpression xpr = xpath.compile("count(//a/b/c)");
System.out.println(xpr.evaluate(n, XPathConstants.NUMBER));
xpr = xpath.compile("count(//a/b/c) = 5");
System.out.println(xpr.evaluate(n, XPathConstants.BOOLEAN));
Run Code Online (Sandbox Code Playgroud)
其中n是文档中的节点/元素
首先打印5.0,第二次打印为true
归档时间: |
|
查看次数: |
11013 次 |
最近记录: |