使用xpath获取具有特定属性

时间:2016-10-14 11:28:23

标签: java xml xpath

请为我提供以下情景的X路径表达式。

元素标记名称不是常数,它们可以变化,层次结构可能会有所不同,如上面的情况,路径属性出现在级别1,可能有一种情况,它不存在于级别1但低于该级别。 / p>

预期结果:NodeList nodeList = {a,z}; list不应包含b或y节点

<root>
   <a path="a">
        <b path="b"></b>
   </a>
   <z path="z">
        <y path="y"></y>
   </z>
</root>

2 个答案:

答案 0 :(得分:2)

就像这样:

/root/*[@path]

<强>更新

如果根名称不是常量:

/*/*[@path]

答案 1 :(得分:0)

首先here是一个很好的XPath教程。

要搜索XML,请遵循以下语法:

String query = "tag[@param= '" + param.getName() + "']";
            log.debug("Xpath query = {}", query);
            XPathExpression<Element> xpe = XPathFactory.instance().compile(query, Filters.element());
            for (Element urle : xpe.evaluate(packages)) {
                urle.doSmth();
            }

如果要在文档中的任何位置选择某些内容,请使用//。 例如,//x选择名为x

的所有标签