Объект DOM Document в Java представляет собой документ XML. Когда вы анализируете файл XML с помощью анализатора DOM, вы возвращаете объект Document.
Две наиболее часто используемые функции:
- Доступ к дочерним элементам элемента.
- Доступ к атрибутам элемента.
Интерфейс Document и все связанные интерфейсы находятся в пакете org.w3c.dom, поскольку они были разработаны Консорциумом World Wide Web(W3C).
Элемент документа
DOM-объект содержит множество различных узлов, связанных в древовидную структуру. Вверху находится объект Document. Он имеет единственный корневой элемент, который возвращается вызовом getDocumentElement() следующим образом:
Element rootElement = document.getDocumentElement();
Дочерние элементы и интерфейс узла
Корневой элемент имеет дочерние элементы, которые могут быть элементами, комментариями, инструкциями обработки, символами и т. д. Вы получаете дочерние элементы элемента следующим образом:
NodeList nodes = element.getChildNodes(); for(int i=0; i
Метод getChildNodes () возвращает объект NodeList, который представляет собой список элементов Node. Интерфейс Node является суперинтерфейсом практически для всех типов узлов в DOM. Это означает, что интерфейс Document наследуется (расширяет) от Node, интерфейс Element расширяет Node, интерфейс Attr (атрибут) расширяет Node и т. д.
Тот факт, что Node является суперинтерфейсом всех интерфейсов узлов в DOM, означает, что вам иногда придется искать в Node необходимые вам методы, такие как getChildNodes(). Об этом следует знать при попытке перебора графа документа.
Атрибуты элемента
Как вы уже видели, вы можете получить доступ к атрибутам элемента через интерфейс Element. Есть два способа сделать это:
String attrValue = element.getAttribute("attrName");
Attr attribute = element.getAttributeNode("attrName");
В большинстве случаев метод getAttribute () будет работать нормально.
Интерфейс Attr расширяет узел. Он позволяет вам получить доступ к элементу-владельцу через метод getOwnerElement() и т.д. Доступ к атрибуту через этот интерфейс в основном удобен, если вам нужно передать атрибут одному или нескольким методам.
Вы можете сделать гораздо больше с объектом Document и связанными с ним узлами, но доступ к дочерним элементам и атрибутам — это то, что вы будете использовать в 90% случаев.
