Получить дочерние узлы по имени тега в DOM - PullRequest
0 голосов
/ 19 января 2012

Я знаю, что в DOM объект Document имеет метод getElementsByTagName () .

Почему эта операция не определена ни на одном конкретном узле? Предположим, у меня есть объект Node, и я хочу найти конкретного потомка этого узла по имени. Должен ли я действительно реализовать свой собственный метод для обхода всех его потомков, пока не найду тот, у которого есть это имя? (Я не использую XPath.) Похоже, много работы для простой задачи. Спасибо

Ответы [ 2 ]

0 голосов
/ 19 января 2012

Я думаю, что вы говорите о JAVA. Если это Javascript, запомните этот ответ (и, пожалуйста, пометьте его соответствующим образом). В этом случае getElementsByTagName работает только с объектами «Элемент», но не с объектами «Узел» (все элементы являются узлами, но все узлы не являются элементами).

http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Element.html

Если вы уверены, что ваш объект является Элементом, вы можете выполнить приведение перед вызовом метода

Element eElement = (Element) nNode;

Возможно, вам понадобится http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#isAssignableFrom%28java.lang.Class%29 раньше.

0 голосов
/ 19 января 2012

Я проверил код и получил ожидаемый результат. Поэтому я думаю, что вы делаете что-то не так.

Пример: http://tinkerbin.com/uAgGGIM4 (нажмите «Выполнить» для запуска кода)

...