#java #xml #api #nodes #alm
#java #xml #API #узлы #alm
Вопрос:
я делаю автоматизацию api hp-alm, используя rest assured n java.Для тестовых примеров с несколькими запусками я получаю приведенный ниже ответ в формате xml.Я хочу знать список атрибутов идентификатора с его значениями.
введите описание изображения здесь
RequestSpecification httpRequest10 = RestAssured.given().cookies(loginCookies).cookies(sessionCookies).queryParam("query", "{cycle-id[" cycleId "];test-id[" testCaseId "]}");
Response testRunId = httpRequest10.request(Method.GET,"/qcbin/rest/domains/" domain "/projects/" project "/runs");
String testRunIdResponseBody = testRunId.getBody().asString();
//logger.info("testRunId Response Body is => " testRunIdResponseBody);//test run details in xml format
statusCode = testRunId.getStatusCode();
//logger.info("The testRunId status code recieved: " statusCode);
String stepID= testRunId.xmlPath().from(testRunIdResponseBody).get("**.find {it.@Name == 'id'}.Value");
List<String> runIds = testRunId.xmlPath().from(testRunIdResponseBody).getList("**.find {it.@Name == 'id'}.Value");
logger.info("stepID" stepID);
Используя приведенный выше код, я могу получить первый идентификатор, но не список идентификаторов
Комментарии:
1. В какой форме вы получаете ответ? Это org.w3c.dom. Документ, какой-то класс JAXB или просто строка? Не могли бы вы предоставить некоторый код с вашими попытками проанализировать ответ? Это помогло бы дать правильный ответ.
2. i.stack.imgur.com/zHx23.png я предоставил скриншот XML-файла
3. Этого недостаточно. Я могу написать код, который анализирует этот XML как строку или как файл и извлекает список идентификаторов, но решение может быть неприменимо для вас, когда оно анализируется каким-либо другим способом. Вот почему было бы лучше предоставить больше информации.
4. я предоставил код. достаточно ли этого или вам нужны какие-либо другие входные данные?
5. Попробуйте использовать
**.findAll
вместо**.find
Ответ №1:
Я полагаю **.find
, следует заменить на **.findAll
:
List<String> runIds = testRunId.xmlPath().from(testRunIdResponseBody).getList("**.findAll {it.@Name == 'id'}.Value");