请为我提供以下情景的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>
答案 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