我想在XML文件中搜索文本值并返回每个搜索结果的位置。Java中的Xpath - 返回搜索结果标记位置
Asuming我有这个XML文件:
<tag>
<tag>
<tag>333</tag>
</tag>
<tag>
<tag>
<tag>333</tag>
</tag>
</tag>
</tag>
我会寻找值“333”:
String expression = "//tag[text()=333]/ancestor::*";
NodeList email = (NodeList) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODESET);
String resultString = "";
for(int i=0; i< email.getLength();i++){
Element labTest = (Element) email.item(i);
resultString += labTest.toString().replace("[tag: null]","tag[0]") + " ";
}
我希望它返回什么是每片含2个的位置节点元素。搜索333的输出将是:
tag[0] tag[0]
tag[0] tag[0] tag[0]
目前搜索返回:
tag[0] tag[0] tag[0] tag[0]
我怎样才能做到这一点?我应该以不同的方式解决问题吗?
非常感谢的片段,并解释!我现在明白了:D – IvanSt
@IvanSt做了一个小修改......在第二部分,内部循环应该选择'ancestors.item(j)'而不是'ancestors.item(i)'。 –