2016-12-22 3 views
0

Я использую сторонний SOAP API, который дает мне «случайный» результат XML. Пожалуйста, ознакомьтесь со следующими примерами, чтобы понять, что я подразумеваю под случайным.Как получить элемент путем частичного имени тега из org.w3c.dom.Document Java

Пример 1:

<test1Interface> 
.... 
</test1Interface> 

Пример 2:

<test2Interface> 
.... 
</test2Interface> 

Пример 3:

<test14Interface> 
.... 
</test14Interface> 

Теперь я пытаюсь получить этот элемент в соответствии с его TagName следующим образом:

document.getElementsByTagName("test14Interface"); // Please assume that document is being initialized properly. 

Поскольку сам TagName продолжает меняться для разных запросов SOAP, которые я выполняю, для некоторых запросов выше фрагмента кода не работает. Поскольку я использую сторонний SOAP API, я не могу изменить его.

Может ли кто-нибудь предложить мне, как я могу получить элемент из документа частичным TagName?

+0

Uxe XPath для запроса DOM? –

+0

@JimGarrison, Спасибо за быстрый ответ. Позвольте мне искать XPath. – RAS

+0

Существуют ли другие элементы со стабильными именами, которые вы можете использовать в качестве контрольных точек? Возможно, было бы легче найти родителя или родного брата с xpath, а затем перейти оттуда. – teppic

ответ

0

Вы можете использовать Document.getChildNodes, а затем при необходимости выполнить произвольную фильтрацию.

Обновление 2016-12-23: В основном это относится к элементу верхнего уровня. Рекурсивный поиск может быть применен для вложенного элемента. Первый поиск по ширине также является опцией.

+0

Вы хотите сказать, что мне нужно пройти весь документ и найти элемент? – RAS

+0

Нет, вам нужно только проверить верхний уровень, если вы хотите получить элемент верхнего уровня. Я предположил, что элемент типа 'test1Interface' является элементом верхнего уровня из-за его имени. – mm759

+0

Обход всего дерева не должен быть больше, чем некоторые строки рекурсивного кода, но я согласен с тем, что XPath является первым кандидатом на поиск по всему дереву. – mm759

 Смежные вопросы

  • Нет связанных вопросов^_^