Приведенный ниже код выведет список идентификаторов элементов, а затем подключит эти идентификаторы в другой запрос xpath. С конечной целью вернуть указанные c дочерние элементы из каждого идентификатора. Этот код работает, однако он ОЧЕНЬ медленный и займет слишком много времени, чтобы кто-либо захотел его подождать, поскольку существует большое количество идентификаторов. Он также вернет все элементы, не указанные c, которые я выберу.
Существует ли однострочный запрос, который выберет диапазон идентификаторов атрибутов?
Есть ли лучший способ вернуть элементы, которые я хочу, без использования другого запроса xpath ?
Здесь это то, что я имею до сих пор:
String expression = "MyComplexQueryHere/@ID-REF"; //Returns all IDs
NodeList nodeList = (NodeList) xpath.compile(expression).evaluate(doc, XPathConstants.NODESET); // Get Nodelist
for (int i = 0; i < nodeList.getLength(); i++)
{
Node nNode = nodeList.item(i);
String expression2 = String.format("MyComplexElements/Element[@ID=\"%s\"]", nNode.getTextContent()) ;
NodeList childList = (NodeList) xpath.compile(expression2).evaluate(doc, XPathConstants.NODESET);
for (int k = 0; k < childList.getLength(); k++)
{
Node kNode = childList.item(k);
System.out.println(kNode.getNodeName());
System.out.println(kNode.getTextContent());
}
}