java xpath 如何获取特定节点的所有不同数据

java xpath how to get all data different of specific node

我想让节点车的所有节点都不同。

XPath xpath = XPathFactory.newInstance().newXPath();
        NodeList nodes = (NodeList) xpath.evaluate("//car", document, XPathConstants.NODESET);

如何设置:

NodeList nodes = (NodeList) xpath.evaluate(!"//car", document, XPathConstants.NODESET);

XPath 字符串前添加感叹号不起作用。实际上,对于 Java,XPath 表达式只是一个 String:它的内容不会被 Java 本身解释,而是由 XPath 库解释使用。

因此,这里唯一的解决办法就是修改XPath里面的表达式 the String.

您可以按照以下方式进行:

NodeList nodes = (NodeList) xpath.evaluate("//*[name() != 'car']", document, XPathConstants.NODESET);

解释: //*[name() != 'car'的意思是:查找文档中所有名称不是'car'

的节点