Технологии java · 2020. 9. 13. · georgiy korneev java advanced / Введение в...
TRANSCRIPT
![Page 1: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/1.jpg)
Технологии Java
Введение в XML
http://kgeorgiy.info/courses/java-advanced/
![Page 2: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/2.jpg)
2
СПбГУ ИТМО
Georgiy Korneev Java Advanced / Введение в XML
Содержание
1. XML
2. Пространства имен
3. SAX
4. DOM
5. Заключение
![Page 3: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/3.jpg)
XML
Часть 1
![Page 4: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/4.jpg)
4Georgiy Korneev Java Advanced / Введение в XML
eXtensible Markup Language
XML – текстовый язык хранения
структурированных данных
Предшественники XML
Standard Generalized Markup Language (SGML)
Hyper Text Markup Language (HTML)
![Page 5: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/5.jpg)
5Georgiy Korneev Java Advanced / Введение в XML
Составляющие XML-документа
Элементы (element) – задают структуру
элемента
Атрибуты (attribute) – дополняют
информацию об элементе
Символьные данные (character data) –
текст внутри элемента
Указания по обработке (processing
instruction) – применяются разборщиками и
другими программами
Комментарии (comment) – игнорируются
![Page 6: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/6.jpg)
6Georgiy Korneev Java Advanced / Введение в XML
Элемент
Структура
Имя
Дети
Атрибуты
Синтаксис
<ИмяЭлемента Атрибуты>
Дети
</ИмяЭлемента>
Сокращенный
<ИмяЭлемента Атрибуты/>
![Page 7: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/7.jpg)
7Georgiy Korneev Java Advanced / Введение в XML
Атрибут
Структура
Имя
Значение
Синтаксис
имя = "значение"
или
имя = 'значение'
![Page 8: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/8.jpg)
8Georgiy Korneev Java Advanced / Введение в XML
Пример: элементы и атрибуты
Описание книги
<book
caption = "Рефакторинг"
isbn = "5-93286-045-6"
publisher = "Символ-Плюс"
pages = "430"
>
<author name='Мартин' last-name='Фаулер'/>
</book>
![Page 9: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/9.jpg)
9Georgiy Korneev Java Advanced / Введение в XML
XML-идентификаторы
Первый символ
Буква, `_` или `:`
Последующие символы
Первый символ, цифра, `-`или `.`
Примеры
hello
HelloWorld
HelloWorld156Times
hello-world
hello.world
![Page 10: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/10.jpg)
10Georgiy Korneev Java Advanced / Введение в XML
Символьные данные
Простые символы
Пример: Привет!
Именованные ссылки
&название;
Пример: Пусть a < b и b < c, тогда a < c
Указание кода символа
&#НомерСимвола;
&#xШестнадцатеричныйНомерСимвола;
Пример: A A
![Page 11: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/11.jpg)
11Georgiy Korneev Java Advanced / Введение в XML
Именованные ссылки
Значения по умолчанию
& & ampersand
< < less than
> > greater than
" " quotes
' ' apostrophe
![Page 12: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/12.jpg)
12Georgiy Korneev Java Advanced / Введение в XML
Пробелы и переводы строк
Пробельные символы
#x20 Пробел
#x9 Табуляция
#xA Перевод строки
Другие переводы строк
Другие переводы строк
#xD возврат каретки
#x85 перевод строки (IBM)
#x2028 перевод строки (Unicode)
#xD #xA перевод строки (DOS)
#xD #x85
![Page 13: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/13.jpg)
13Georgiy Korneev Java Advanced / Введение в XML
Блоки символьных данных
Синтаксис
<![CDATA[символьные данные]]>
Примеры
<![CDATA[Внутри блока символьных данных
спец символы можно писать непосредственно:
? < > ' "]]>
<![CDATA[Но, иногда, приходится делать и так:
]]]]><![CDATA[>]]>
![Page 14: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/14.jpg)
14Georgiy Korneev Java Advanced / Введение в XML
Указания по обработке
Структура
Имя
Значение
Синтаксис
<?имя значение?>
![Page 15: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/15.jpg)
15Georgiy Korneev Java Advanced / Введение в XML
Комментарии
Синтаксис
<!-- комментарий -->
Примеры
<!-- простой комментарий -->
<!--
многострочный
комментарий
-->
![Page 16: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/16.jpg)
16Georgiy Korneev Java Advanced / Введение в XML
Общая структура XML-документа
Пролог
Заголовок
Тип документа
Комментарии и указания по обработке
Корневой элемент
Эпилог
Комментарии и указания по обработке
![Page 17: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/17.jpg)
17Georgiy Korneev Java Advanced / Введение в XML
Заголовок XML-файла (1)
Позволяет указывать версию языка XML и
кодировку, в которой записан файл
Синтаксис
<?xml version="версия" encoding="кодировка"?>
ПримерВерсия 1.1, кодировка 1251 (Windows Russian)
<?xml version="1.1" encoding="WINDOWS-1251"?>
![Page 18: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/18.jpg)
18Georgiy Korneev Java Advanced / Введение в XML
Заголовок XML-файла (2)
Версии XML
1.0 (пять редакций), версия по умолчанию
1.1 (две редакции)
Примеры
UTF-8 – версия по умолчанию
UTF-16 – при наличии byte-order mark
Другие кодировки могут не поддерживаться
WINDOWS-1251
Cp866
![Page 19: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/19.jpg)
Пространства имен
Часть 2
![Page 20: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/20.jpg)
20Georgiy Korneev Java Advanced / Введение в XML
Пространства имен
Позволяют одновременно использовать
одинаковые имена, придуманные разными
людьми
Пространство имен идентифицируется URI
![Page 21: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/21.jpg)
21Georgiy Korneev Java Advanced / Введение в XML
Указание пространства имен
Структура
Полное имя (qualified name)
Пространство имен (namespace)
Локальное имя (local name)
Префикс (prefix)
Имя имеет вид
префикс:локальноеИмя
Пространства имен связываются с
префиксами с помощью атрибутов вида
xmlns:префикс = "пространство имен"
![Page 22: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/22.jpg)
22Georgiy Korneev Java Advanced / Введение в XML
Пример: пространства имен
Описание книги
<library:book
xmlns:library = "http://example.com/MyLibrary"
xmlns:isbn = "http://example.com/isbn"
xmlns:issn = "http://example.com/issn"
isbn:number = "5398866"
issn:number = "unknown"
…
>
<library:author library:name="Мартин" .../>
…
</library:book>
![Page 23: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/23.jpg)
23Georgiy Korneev Java Advanced / Введение в XML
Область действия префикса
От элемента для которого определено
отображение префикса вниз по дереву, до
элементов для которых указано новое
отображение этих префиксов
Действие префикса можно отменить,
указав отображение на пустую строку
![Page 24: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/24.jpg)
24Georgiy Korneev Java Advanced / Введение в XML
Пространство имен по умолчанию
Применяется для элементов для которых
не указано пространство имен
Объявление
xmlns="пространство имен"
![Page 25: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/25.jpg)
25Georgiy Korneev Java Advanced / Введение в XML
Пример: пространства имен по умолчанию
Описание книги
<book
xmlns = "http://example.com/MyLibrary"
xmlns:library = "http://example.com/MyLibrary"
xmlns:isbn = "http://example.com/isbn"
xmlns:issn = "http://example.com/issn"
isbn:number = "5398866"
issn:number = "unknown "
…
>
<author library:name="Мартин" .../>
…
</book>
![Page 26: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/26.jpg)
SAX
Часть 3
![Page 27: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/27.jpg)
27Georgiy Korneev Java Advanced / Введение в XML
Simple API for XML
Представляет XML-документ в виде
последовательности событий
Пакеты
org.xml.sax – модель SAX
java.xml.parsers – разборщики
![Page 28: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/28.jpg)
28Georgiy Korneev Java Advanced / Введение в XML
Разбор XML
Интерфейс XMLReader
Методы
parse(InputSource) – разобрать XML-документ
setContentHandler(ContentHandler) –
устанавливает приемник событий
setErrorHandler(ErrorHandler) – установить
обработчик ошибок
setFeature(name, value) – установить настройку
setProperty(name, value) – установить свойство
![Page 29: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/29.jpg)
29Georgiy Korneev Java Advanced / Введение в XML
Источники данных
Класс InputSource
Конструкторы
InputSource(InputStream) – из байтового потока
InputSource(Reader) – из символьного потока
InputSource(systemId) – по URL
![Page 30: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/30.jpg)
30Georgiy Korneev Java Advanced / Введение в XML
Обработчик событий (1)
Интерфейс ContentHandler
Класс DefaultHandler
Методы
setDocumentLocator(Locator locator) –установить источник местоположения
startDocument() – начало документа
endDocument() – конец документа
startElement(ns, localName, qName, Attributes) –открывающий тег элемента
endElement(ns, localName, qName) –закрывающий тег элемента
![Page 31: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/31.jpg)
31Georgiy Korneev Java Advanced / Введение в XML
Обработчик событий (2)
Методы
characters(char[] ch, offset, len) –
последовательность символов
ignorableWhitespace(char[] ch, offset, len) –
последовательность пробельных символов
processingInstruction(prefix, data) –
рекомендация по обработке
startPrefixMapping(prefix, uri) – начало области
использование префикса
endPrefixMapping(prefix, uri) – окончание
области использование префикса
![Page 32: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/32.jpg)
32Georgiy Korneev Java Advanced / Введение в XML
Атрибуты
Интерфейс Attributes
Методы
getLength() – количество атрибутов
getLocalName(index) – локальное имя
getQName(index) – полное имя
getURI(index) – пространство имен
getValue(index) – получить значение по индексу
getValue(qName) – получить значение по полному имени
getValue(ns, localName) – получить значение по пространству имен и локальному имени
![Page 33: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/33.jpg)
33Georgiy Korneev Java Advanced / Введение в XML
Информация о местоположении
Интерфейс Locator
Методы
getLineNumber() – номер строки
getColumnNumber() – номер столбца
getSystemId() – URL разбираемого файла
![Page 34: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/34.jpg)
34Georgiy Korneev Java Advanced / Введение в XML
Обработка ошибок
Интерфейс ErrorHandler
Методы
error(SAXParseException) – сообщение об
исправимой ошибке
fatalError(SAXParseException) – сообщение о
неисправимой ошибке
warning(SAXParseException) – сообщение о
предупреждении
![Page 35: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/35.jpg)
35Georgiy Korneev Java Advanced / Введение в XML
Исключения
Класс SAXException
Методы
getLineNumber() – номер строки
getColumnNumber() – номер столбца
getSystemId() – URL разбираемого файла
![Page 36: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/36.jpg)
36Georgiy Korneev Java Advanced / Введение в XML
Создание SAXParser
Класс SAXParserFactory
Методы
static newInstance() – создать фабрику
newSAXParser() – создать разборщик
setFeature(uri, value) – установить настройку
setProperty(name, value) – установить свойство
setNamespaceAware(value) – установить
поддержку пространств имен
Класс SAXParser implements XMLReader
![Page 37: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/37.jpg)
DOM
Часть 4
![Page 38: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/38.jpg)
38Georgiy Korneev Java Advanced / Введение в XML
Document Object Model
Представляет XML-документ в виде
дерева узлов
Пакеты
org.w3c.dom – модель DOM
java.xml.parsers – разборщики
![Page 39: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/39.jpg)
39Georgiy Korneev Java Advanced / Введение в XML
Узлы
Интерфейс Node
Структура узла
getLocalName() – локальное имя
getNamespaceURI() – пространство имен
getPrefix() – префикс
getNodeName() – имя узла
getNodeValue() – значение узла
getNodeType() – тип узла
![Page 40: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/40.jpg)
40Georgiy Korneev Java Advanced / Введение в XML
Типы узлов
Интерфейс Описание Имя Значение
Attr Атрибут Имя Значение
CDATASection Блок символов #cdata-section Содержание
Comment Комментарий #comment Содержание
Document Документ #document
Element Элемент Имя
ProcessingInst
ruction
Рекомендация
по обработке
Имя Значение
Text Текст #text Содержание
![Page 41: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/41.jpg)
41Georgiy Korneev Java Advanced / Введение в XML
Навигация по узлам
Интерфейс Node
Структура узла
getNextSibling() – предыдущий брат
getPreviousSibling() – следующий брат
getFirstChild() – первый ребенок
getLastChild() – последний ребенок
getParentNode() – родитель
![Page 42: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/42.jpg)
42Georgiy Korneev Java Advanced / Введение в XML
Атрибуты
Методы интерфейса Node
hasAttributes() – проверить наличие атрибутов
getAttributes() – получить атрибуты
Интерфейс NamedNodeMap
Методы
getLength() – количество элементов
item(index) – узел по индексу
getNamedItem(name) – узел по имени
getNamesItemNS(namespace, localName) – узел
по имени и пространству имен
![Page 43: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/43.jpg)
43Georgiy Korneev Java Advanced / Введение в XML
Вложенные узлы
Методы интерфейса Node
hasChildNodes() – проверить наличие детей
getChildNodes() – получить детей
Интерфейс NodeList
Методы
getLength() – количество элементов
item(index) – элемент по индексу
![Page 44: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/44.jpg)
44Georgiy Korneev Java Advanced / Введение в XML
Элементы
Интерфейс Element
Методы
Работа с атрибутами
getAttribute(name) – получить значение атрбута
Работа с вложенными элементами
getElementsByTagName(name) – получить всех
потомков с заданным именем
![Page 45: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/45.jpg)
45Georgiy Korneev Java Advanced / Введение в XML
Разбор XML в DOM
Класс DocumentBuilder
Методы
parse(File | InputStream | InputSource | URI) –
построить документ
isNamespaceAware() – поддерживает ли
пространства имен
![Page 46: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/46.jpg)
46Georgiy Korneev Java Advanced / Введение в XML
Создание DocumentBuilder
Класс DocumentBuilderFactory
Методы
static newInstance() – создать фабрику
newDocumentBuilder() – создать DocumentBuilder
setFeature(uri, value) – установить настройку
setNamespaceAware(value) – установитьподдержку пространств имен
setIgnoringComments(value) – установить игнорирование комментариев
setIgnoringElementContentWhitespace(value) –пропуск текстовых узлов из одних пробелов
![Page 47: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/47.jpg)
47Georgiy Korneev Java Advanced / Введение в XML
Построение XML через DOM
Интерфейс Document
createXXX(…) – создает элемент
соответствующего типа
Интерфейс Node
appendChild(node) – добавляет узел
removeChild(index) – удаляет узел
![Page 48: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/48.jpg)
48Georgiy Korneev Java Advanced / Введение в XML
Вывод DOM в файл
Класс TransformerFactory
Методы
newInstance() – создать экземпляр фабрики
newTransformer() – создать пустое преобразование
Класс Transformer
Метод
transform(Source, Result) – преобразовать документ
Класс DOMSource
Класс StreamResult
![Page 49: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/49.jpg)
Заключение
Часть 6
![Page 50: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/50.jpg)
50Georgiy Korneev Java Advanced / Введение в XML
Ссылки (1)
Extensible Markup Language 1.1 //
http://www.w3.org/TR/2004/REC-xml11-
20040204/
XML Information Set //
http://www.w3.org/TR/2004/REC-xml-infoset-
20040204/
Namespaces in XML 1.1 //
http://www.w3.org/TR/2004/REC-xml-
names11-20040204/
![Page 51: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/51.jpg)
51Georgiy Korneev Java Advanced / Введение в XML
Ссылки (2)
Document Object Model Level 3 Core
Specification //
http://www.w3.org/TR/2004/REC-DOM-Level-
3-Core-20040407
SAX Project // http://www.saxproject.org/
Java API for XML Processing //
http://java.sun.com/xml
![Page 52: Технологии Java · 2020. 9. 13. · Georgiy Korneev Java Advanced / Введение в XML 24 Пространство имен по умолчанию Применяется](https://reader035.vdocuments.us/reader035/viewer/2022071407/60fdda7e99a61407e371083a/html5/thumbnails/52.jpg)
52
СПбГУ ИТМО
Georgiy Korneev Java Advanced / Введение в XML
Вопросы