Я просто понял что метод Element.getElementsByTagName("someTagName")
возвращает nodelist всех элементов в документе, которые имеют данный tagname. Что, если я просто хочу получить все дочерние элементы именем тега?
Например...
<person>
<name>Bob</name>
<car>
<name>Toyota Corolla</name>
</car>
</person>
getElementsByTagName
всегда работает в контексте элемента, для которого он вызван. Если вызвать Element
, будут доступны только дочерние элементы с указанным именем тега.
Я думаю, вы путаете это с объектом Document
(org.w3c.dom. Document) getElementsByTagName
, то будут возвращены все элементы с заданным именем тега в документе.
Не все элементы в документе — все descendant элементы элемента, который он вызывает. Похоже, это то, что вы хотите. Вам просто нужно назвать его справа Element
. См. здесь.
У меня была похожая проблема. Попробуйте вместо этого посмотреть на класс Node:
http://java.sun.com/javase/6/docs/api/org/w3c/dom/Node.html#getChildNodes()
Там есть метод "getChildNodes", который возвращает список всех прямых дочерних узлов. Затем вам нужно отфильтровать этот список, чтобы получить только элементы-узлы с правильным именем.