Класс 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());
}
Дата добавления: 2015-03-20; просмотров: 1816;