我正在使用javax.xml.xpath.XPath包来查找XML中存在的节点 . 代码查找值并返回NodeList
NodeList nodes = (NodeList) xPath.compile("/books/book/category[1] | /books/book/category[2] | /books/book/category[3]").evaluate(xmlDocument,XPathConstants.NODESET);
我的示例XML是:
abc
category1
152491915491444
pqr
1619126541625
xyz
category3
851926542599595
我在NodeList中获得2个节点,因为“类别”在XML的第2个节点中不存在 .
那么无论如何识别我从NodeList获得的节点是我在xPath.compile中传递的xpath的结果吗?因为这里不可能识别值'category3'来自节点2或3 .
或者无论如何都得到XML中的节点号,我得到了结果 . 在这个例子中,我应该得到节点1和3,因为我得到的类别来自XML的第1和第3个节点 .
另一种方法是传递单个xpath而不是多个xpath . 但我不想使用这种方法,因为它很耗时,我必须处理很多这样的XML .