Интерфейс Element

Интерфейс Element добавляет к методам своего родительского элемента Node методы работы с атрибутами элемента XML и методы, позволяющие обратиться к вложенным элементам.

Метод

public String getTagName()

возвращает имя элемента.

Методы

public NodeList getElementsByTagName(String name)

public NodeList getElementsByTagNameNS(String namespaceURI,

String localName)

позволяют получить коллекцию дочерних узлов данного элемента либо с заданным именем name, либо с заданным URI пространства имен namespaceURI и локальным именем localName.

Проверить наличие у элемента атрибута с именем name, либо по заданному URI пространства имен namespaceURI и локальному имени localName можно с помощью методов

public boolean hasAttribute(String)

public boolean hasAttributeNS(String namespaceURI,

String localName).

Получить атрибут в виде объекта типа Attr или его значение в виде строки по имени name, либо по заданному URI пространства имен namespaceURI и локальному имени localName можно с помощью методов

public Attr getAttributeNode(String name);

public Attr getAttributeNodeNS(String namespaceURI,

String localName)

public String getAttribute(String name);

public String getAttributeNS(String namespaceURI,

String localName).

Установить значение атрибута value можно с помощью методов

public void setAttribute(String name, String value)

throws DOMException

public void setAttributeNS(String namespaceURI,

String qualifiedName, String value)

throws DOMException.

Создание нового атрибута как узла типа Attr или изменение существующего узла типа Attr выполняется с помощью методов

public Attr setAttributeNode(Attr newAttr)

throws DOMException

public Attr setAttributeNodeNS(Attr newAttr)

throws DOMException

Первый метод добавляет или замещает узел по его имени, второй – по URI пространства имен и локальному имени.

Удалить атрибут с именем name, либо с заданным URI пространства имен namespaceURI и локальным именем localName можно с помощью методов

public void removeAttribute(String name)

throws DOMException

public void removeAttributeNS(String namespaceURI,

String localName) throws DOMException.

Удаление атрибута как узла типа Attr с именем name выполняется с помощью метода

public Attr removeAttributeNode(Attr name)

throws DOMException.

 

Примеры использования методов интерфейса Element:

1. Вывести отправителей и тему для сообщений электронной почты, получателем которой является ivanov@mail.com:

// Получение списка элементов to в emailDoc

NodeList toMessageList =

emailDoc.getElementsByTagName("to");

// Получение количества элементов to

int toNumber = toMessageList.getLength();

// Получение списка элементов from в emailDoc

NodeList fromMessageList =

emailDoc.getElementsByTagName("from");

// Получение списка элементов subject в emailDoc

NodeList subjectToList =

emailDoc.getElementsByTagName("subject");

// Вывод заголовка

System.out.println("Вывод почты для ivanov@mail.com");

// Получение адресатов в цикле

for (int i=0; i < toNumber;i++) {

// Получение текущего элемента to

Element currentTo = (Element)toMessageList.item(i);

// Получение значения атрибута value

// в текущем элементе to

String currentToValue =

currentTo.getAttribute("value");

// Если получателем является ivanov@mail.com

if(currentToValue.equals("ivanov@mail.com")) {

// Получение текущего элемента from

Element currentFrom =

(Element)fromMessageList.item(i);

// Получение значения атрибута value

// в текущем элементе from

String currentFromValue =

currentFrom.getAttribute("value");

// Получение текущей темы

String currentSubjectValue =

subjectList.item(i).getFirstChild().getNodeValue();

// Вывод сведений о сообщении

System.out.println(" Сообщение " + (i+1) + ":\n" +

" Отправитель: " + currentFromValue + "\n" +

" Тема: " + currentSubjectValue);

}

}

Вывод этого фрагмента программы будет иметь следующий вид:

Вывод почты для ivanov@mail.com

Сообщение 3:

Отправитель: sidorov@mail.com

Тема: Отказ

Сообщение 5:

Отправитель: sidorov@mail.com

Тема: Ответ

 

2. Добавить в документе newEmailDoc в элементы message атрибут id, а в элементы header – атрибуты from, to и subject:

// Получение списка элементов message в newEmailDoc

NodeList newMessageList =

newEmailDoc.getElementsByTagName("message");

// Установка атрибута id для элементов message в цикле

for (int i=0; i < newMessageList.getLength();i++) {

// Получение текущего элемента message

Element currentMsg = (Element)newMessageList.item(i);

// Создание узла аттрибута id

Attr idAttr = newEmailDoc.createAttribute("id");

// Задание значения для узла атрибута id

idAttr.setValue("msg" + (i+1));

// Установка атрибута id для

// текущего элемента message

currentMsg.setAttributeNode(idAttr);

}

 

// Массив отправителей писем

String [] fromArray =

{"petrov@mail.com","sidorov@mail.com"};

// Массив получателей писем

String [] toArray =

{"sidorov@mail.com","petrov@mail.com"};

// Массив тем писем

String [] subjectArray =

{"Напоминание","Благодарность"};

// Получение списка элементов header в newEmailDoc

NodeList newHeaderList =

newEmailDoc.getElementsByTagName("header");

// Установка атрибутов для элементов header в цикле

for (int i=0; i < newMessageList.getLength();i++) {

// Получение текущего элемента header

Element currentHeader =

(Element)newHeaderList.item(i);

// Установка значения атрибута from

// для текущего элемента header

currentHeader.setAttribute("from", fromArray[i]);

// Установка значения атрибута to

// для текущего элемента header

currentHeader.setAttribute("to", toArray[i]);

// Установка значения атрибута subject

// для текущего элемента header

currentHeader.setAttribute("subject",

subjectArray[i]);

}

Полученный в результате выполнения этого фрагмента программы документ XML примет следующий вид:

<?xml version="1.1" encoding="UTF-8" standalone="no"?>

<new-email-folder>

<message id="msg1">

<!--Сообщение 1-->

<header from="petrov@mail.com"

subject="Напоминание" to="sidorov@mail.com"/>

<body>Завтра зачет по физике.</body>

</message>

<message id="msg2">

<!--Сообщение 2-->

<header from="sidorov@mail.com"

subject="Благодарность" to="petrov@mail.com"/>

<body>Спасибо, что напомнил</body>

</message>

</new-email-folder>








Дата добавления: 2015-03-20; просмотров: 563;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.02 сек.