
- •JAVA-ТЕХНОЛОГИЯ
- •eXtensible Markup Language
- •Составляющие XML- документа
- •Элемент
- •Атрибут
- •Пример: элементы и атрибуты
- •XML-идентификаторы
- •Символьные данные
- •Именованные ссылки
- •Пробелы и переводы строк
- •Блоки символьных данных
- •Указания по обработке
- •Комментарии
- •Общая структура XML- документа
- •Заголовок XML-файла (1)
- •Заголовок XML-файла (2)
- •Пример
- •Simple API for XML
- •Разбор XML
- •Источники данных
- •Обработчик событий (1)
- •Обработчик событий (2)
- •Атрибуты
- •Информация о местоположении
- •Обработка ошибок
- •Исключения
- •Создание SAXParser
- •Пример
- •Пример(продолжение)
- •Document Object Model
- •Узлы
- •Типы узлов
- •Навигация по узлам
- •Атрибуты
- •Вложенные узлы
- •Элементы
- •Разбор XML в DOM
- •Создание DocumentBuilder
- •Построение XML через DOM
- •Вывод DOM в файл
- •Пример

Вывод DOM в файл
Класс TransformerFactory
Методы
newInstance() – создать экземпляр фабрики
newTransformer – создать пустое преобразование
Класс Transformer
Метод
transform(Source, Result) – преобразовать документ
Класс DOMSource
Класс StreamResult
(С) Сафонов В.О. 2013

Пример
private void calculate() { //Строим DOM-дерево Document document; try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder(); document = builder.parse(file);
} catch (.. // exceptions )
}
//получаем книги
//для каждой книги - библиотечная цена и обычная.
Element root = document.getDocumentElement();
NodeList books = root.getElementsByTagNameNS(LIBRARY_NAMESPACE, "book"); for (int i = 0; i < books.getLength(); i++) {
Node book = books.item(i);
price += getPrice(book.getAttributes().getNamedItemNS(null, "price")); libraryPrice +=
getPrice(book.getAttributes().getNamedItemNS(LIBRARY_NAMESPACE, "price"));
}
//выводим сколько надо потратить System.out.println("Price: " + price); System.out.println("Library price: " + libraryPrice);
}
(С) Сафонов В.О. 2013