Выделите все элементы в диапазоне идентификаторов атрибутов и верните указанные c элементы - PullRequest
1 голос
/ 14 февраля 2020

Приведенный ниже код выведет список идентификаторов элементов, а затем подключит эти идентификаторы в другой запрос xpath. С конечной целью вернуть указанные c дочерние элементы из каждого идентификатора. Этот код работает, однако он ОЧЕНЬ медленный и займет слишком много времени, чтобы кто-либо захотел его подождать, поскольку существует большое количество идентификаторов. Он также вернет все элементы, не указанные c, которые я выберу.

  1. Существует ли однострочный запрос, который выберет диапазон идентификаторов атрибутов?

  2. Есть ли лучший способ вернуть элементы, которые я хочу, без использования другого запроса 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());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...