Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-06.doc
Скачиваний:
5
Добавлен:
12.05.2015
Размер:
287.23 Кб
Скачать

5.2.3.1.2. КлассDocumentBuilderFactory

Класс DocumentBuilderFactoryпакетаjavax.xml.parsersопределяет производственный (factory) интерфейс прикладного программирования для конфигурирования и полученияDOM-анализатора.

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

public static DocumentBuilderFactory newInstance()

throws FactoryConfigurationError.

Создание нового экземпляра DOM-анализатора с использованием текущих производственных параметров выполняется с помощью метода

public abstract DocumentBuilder newDocumentBuilder()

throws ParserConfigurationException

В классе DocumentBuilderFactoryопределены также конкретные реализации методов получения и установки значений параметров конфигурации данногоDOM-анализатора.

Так, методы

public boolean isNamespaceAware()

public void setNamespaceAware(boolean awareness)

проверяют возможность работы с пространствами имен или устанавливают возможность работы с пространствами имен (при значении awareness, равномtrue), а методы

public boolean isValidating()

public void setValidating(boolean validating).

проверяют возможность определения действительности документа XMLили устанавливают проверку действительности документаXML(при значенииvalidating, равномtrue)

По умолчанию значения awarenessиvalidatingустановлены вfalse.

Методы

public boolean isExpandEntityReferences()

public void

setExpandEntityReferences(boolean expandEntityRef)

проверяют возможность DOM-анализатора расширять узлы ссылок на сущности в документе XML или устанавливают возможность расширения узлов ссылок на сущности в документе XML (при значении expandEntityRef, равном true) По умолчанию значение expandEntityRef установлено в true.

Методы

public boolean isIgnoringComments()

public void setIgnoringComments(boolean ignoreComments)

проверяют, игнорирует ли DOM-анализатор комментарии в документеXMLили устанавливают режим игнорирования комментариев в документеXML(при значенииignoreComments, равномtrue) По умолчанию значениеignoreComments установлено вfalse.

Методы

public boolean isIgnoringElementContentWhitespace()

public void

setIgnoringElementContentWhitespace(boolean whitespace)

проверяют, игнорирует ли DOM-анализатор лишние пробелы в содержимом элемента документа XML или устанавливают режим игнорирования лишних пробелов в содержимом элемента документа XML (при значении whitespace, равном true) По умолчанию значение whitespace установлено в false.

Методы

public boolean isCoalescing()

public void setCoalescing(boolean coalescing)

проверяют, сконфигурирован ли DOM-анализатор для преобразования узлов типаCDATAв узлы типаTextи присоединяют их к соседнему узлу (если он существует) в документеXMLили устанавливают режим такого преобразования в документеXML(при значенииcoalescing, равномtrue) По умолчанию значениеcoalescing установлено вfalse.

Методы

public abstract Object getAttribute(String name)

throws IllegalArgumentException

public abstract void setAttribute(String name,

Object value) throws IllegalArgumentException

позволяют пользователю получать или устанавливать значение указанного атрибута в данной реализации.

Примеры открытия документа XML:

1. Открытие существующего файла email.xml(см.5.1.1.5.2):

import org.w3c.dom.*;

import javax.xml.parsers.*;

Document emailDoc;

try {

// Создание объекта DocumentBuilderFactory

DocumentBuilderFactory emailFactory =

DocumentBuilderFactory.newInstance();

// Создание объекта DocumentBuilder

DocumentBuilder emailBuilder =

emailFactory.newDocumentBuilder();

// Анализ документа в файле email.xml

emailDoc = emailBuilder.parse("email.xml");

// Обработка документа emailDoc

}

// Обработка исключений

catch(Exception e) {

System.out.println("Ошибка XML:" +

e.getMessage());

}

2. Создание дерева нового документа newEmail.xmlс использованием методаnewDocument():

import org.w3c.dom.*;

import javax.xml.parsers.*;

Document newEmailDoc;

try {

// Создание объекта DocumentBuilderFactory

DocumentBuilderFactory newEmailFactory =

DocumentBuilderFactory.newInstance();

// Создание объекта DocumentBuilder

DocumentBuilder newEmailBuilder =

newEmailFactory.newDocumentBuilder();

// Создание нового документа newEmailDoc

newEmailDoc = newEmailBuilder.newDocument();

// Формирование документа newEmailDoc

}

// Обработка исключений

catch(Exception e) {

System.out.println("Ошибка XML:" +

e.getMessage());

}

3. Создание дерева нового документа email1.xmlс использованием методаgetDOMImplementation():

import org.w3c.dom.*;

import javax.xml.parsers.*;

Document email1Doc;

try {

// Создание объекта DocumentBuilderFactory

DocumentBuilderFactory email1Factory =

DocumentBuilderFactory.newInstance();

// Создание объекта DocumentBuilder

DocumentBuilder email1Builder =

email1Factory.newDocumentBuilder();

// Создание объекта DOMImplementation

DOMImplementation email1Impl =

email1Builder.getDOMImplementation();

// Создание нового документа email1Doc

email1Doc = email1Impl.createDocument(

null,"email-folder", null);

// Формирование документа emailDoc

}

// Обработка исключений

catch(Exception e) {

System.out.println("Ошибка XML:" +

e.getMessage());

}

Соседние файлы в папке Лекции