我正在使用XPath的Java计算下面的XPath布尔表达式。但是,表达式总是返回true。
boolean(//InteractionControl/MessageIdtext() = "fdsfsd")
XML文档中MessageId节点的文本值是"9000“,因此,除非我遗漏了什么,否则上面的XPath表达式应该返回false。
发布于 2017-08-08 21:10:27
如果count(//InteractionControl/MessageId[text() = "fdsfsd"])
不是0,则xpath与非空节点集匹配,从而将boolean()
函数解析为true。见此处:https://developer.mozilla.org/en-US/docs/Web/XPath/Functions/boolean
发布于 2017-08-09 16:59:36
我通过使用XPath API中的“计算”函数解决了这个问题,该函数使用一个参数指定返回类型。
Boolean evaluation = xPath.compile(xPathStr).evaluate(xmlDocument, XPathConstants.BOOLEAN)
也许不接受指定返回类型的参数的“计算”函数有错误。
https://stackoverflow.com/questions/45577910
复制相似问题