У меня есть следующие XML:Xerces Xpath - поиск узла с другого узла
<ONIXMessage>
<Product>
<RecordReference>9786071502131</RecordReference>
<RecordReference>9786071502131</RecordReference>
</Product>
<Product>
<RecordReference>9786071502131</RecordReference>
</Product>
</ONIXMessage>
И следует код Java:
Element ONIXmessage = document.getDocumentElement();
products = XPathAPI.selectNodeList(ONIXmessage, "/ONIXMessage/Product");
for(int i = 0;i < products.getLength();i++) {
Node product = products.item(i);
NodeList prova = XPathAPI.selectNodeList(ONIXmessage, "/ONIXMessage/Product/RecordReference");
System.out.println(prova.getLength());
NodeList prova2 = XPathAPI.selectNodeList(product, "/ONIXMessage/Product/RecordReference");
System.out.println(prova2.getLength());
}
Этот код возвращается: 3 3 3 3
I подумайте, что этот код должен возвращать 3 2 3 1, потому что переменная «prova» содержит все «RecordReference» узлы документа, а «prova2» содержит только определенные узлы «RecordReference» только одного продукта.
Как я могу использовать XPATH для получения только узлов определенного продукта?