Презентация на тему "Работа с XML-данными в Java"

Презентация: Работа с XML-данными в Java
1 из 23
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
4.2
2 оценки

Комментарии

Нет комментариев для данной презентации

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


Добавить свой комментарий

Аннотация к презентации

Смотреть презентацию онлайн на тему "Работа с XML-данными в Java" по информатике. Презентация состоит из 23 слайдов. Для студентов. Материал добавлен в 2016 году. Средняя оценка: 4.2 балла из 5.. Возможность скчачать презентацию powerpoint бесплатно и без регистрации. Размер файла 0.54 Мб.

Содержание

  • Презентация: Работа с XML-данными в Java
    Слайд 1

    Лекция 12.Работа с XML-данными в Java

  • Слайд 2

    XML – Extensible Markup Language

    Для чего нужен: Интеграция данных из различных источников Локальная обработка данныхна клиенте. Просмотр и манипулирование данными в различных разрезах. Возможность частичного обновления данных.

  • Слайд 3

    XML. Конструкции языка

    Элементы данных Элементами могут выступать как обычный текст, так и другие, вложенные, элементы документа, секции CDATA, инструкции по обработке, комментарии. Например: Siberia

    родной университет

     

  • Слайд 4

    Well-formed XML

    Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего "напарника“. В XML учитывается регистр символов. Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки. Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные и поэтому учитываются все символы форматирования ( т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML). Документ должен иметь только один элемент верхнего уровня (элемент Документ или корневой элемент). Все другие элементы должны быть вложены в элемент верхнего уровня.

  • Слайд 5

    XML. Конструкции языка

    Комментарии Cпециальные символы < , > " или $(десятичная форма записи), Атрибуты - имя должно начинаться с буквы или символа подчеркивания (_), после чего могут следовать или не следовать другие буквы, цифры, символы точки (.), тире (–) или подчеркивания; - каждое имя атрибута может только один раз присутствовать в одном и том же начальном теге или в теге пустого элемента. Например: - правильно - неправильно

  • Слайд 6

    XML. Атрибуты

    строка может быть заключена как в одинарные ('), так и в двойные кавычки ("); строка не может содержать внутри себя тот же символ кавычек, которыми она ограничена; строка может содержать ссылку на символ или ссылку на внутренние примитивы общего назначения; строка не может содержать символ < (Синтаксический анализатор может воспринять этот символ как начало описания XML-разметки.) строка не может содержать символ &, если это не ссылка на символ или примитив.

  • Слайд 7

    XML. Конструкции языка

    Директивы анализатора CDATA Необходима чтобы задать область документа, которую при разборе анализатор будет рассматривать как простой текст, игнорируя любые инструкции и специальные символы, но, в отличии от комментариев, иметь возможность использовать их в приложении. DTD (Document Type Definition) Содержит правила, описывающие структуру документа Документ автоматически проверятся на соответствие этим правилам Описывает дочерние элементы и атрибуты для каждого элемента

  • Слайд 8

    Valid XML

    Document Type Definition может быть описан в документе или во внешнем файле: ]>

  • Слайд 9

    XML Schema

    Schema Предназначена для того же что и DTD Для описания правил используется XML Более гибкие возможности, чем у DTD Сложнее в восприятии и создании средств её обработки <страна xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="country.xsd"> <название>Франция <население>59.7

  • Слайд 10

    Пример. Входные данные

    Есть xml-документ: Nikolaj Ivanov 23 PF-11 Petr Kilkin 22 FP-22 Petr Taranov 43 FP-33

  • Слайд 11

    Пример. Желанный результат

    Student: name: Nikolaj surname: Ivanov age: 23 group: PF-11 Student: name: Petr surname: Kilkin age: 22 group: FP-22 Student: name: Petr surname: Taranov age: 43 group: FP-33

  • Слайд 12

    Разбор XML документов

    XML парсеры: DOM-парсер (Document Object Model) – предварительно анализируется XML-документ и сохраняется дерево элементов XML в оперативной памяти. Требователен к ресурсам. SAX-парсер (Simple API for XML) — парсер, основывающийся на событиях (event-based). Быстр, за счет разбора только конкретной части документа.Занимает мало памяти.

  • Слайд 13

    SAX API

    SAX API (на примере org.xml.sax) Представляет следующие интерфейсы для манипулирования XML: ContentHandler – ключевой интерфейс. Вызывая различные методы интерфейса XMLReader сообщает приложению о содержимом разбираемого документа DTDHandler – определяет методы которые используются для получения от XMLReader информации о нотации и необрабатываемых обьявлениях сущностей в DTD документа. ErrorHandler – используется для генерации ридером предупреждений, ошибке или неисправимой ошибке. InputSource – описывает источник входных данных: поток байт или символов, файл и т.п. откуда парсеру считывать документ. XMLReader – основной интерфейс содержащий методы парсера реализованые в других классах, таких как SAXParser или SAXParcerFactory Пакет org.xml.sax.helpers – содержит вспомогательные классы необходимые при работе с SAX-парсерами: DefaultHandler, XMLReaderFactory, XMLReaderImpl, ParserAdapter.

  • Слайд 14

    Пример. SAX-парсинг

    importjavax.xml.parsers.*; importorg.xml.sax.*; importjava.io.IOException; publicclassSAXExampleextendsorg.xml.sax.helpers.DefaultHandler{ publicvoid process(String filename) throwsSAXException, IOException, ParserConfigurationException { SAXParserFactory.newInstance(). newSAXParser().parse(filename, this); } publicstaticvoid main(String[] args) throwsException { newSAXExample().process(args[0]); } ...

  • Слайд 15

    Пример. SAX-парсинг. Продолжение

    ... privateint level = 0; privateboolean inStudent = false; privateStringBuffer text = newStringBuffer(); @Override publicvoid startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { level++; if (level == 2 && qName.equals("student")) { inStudent = true; System.out.println("Student:"); } text.setLength(0); } @Override publicvoid characters(char[] ch, int start, int length) throws SAXException { text.append(ch, start, length); } @Override publicvoid endElement(String uri, String localName, String qName) throws SAXException { if (level == 3 && inStudent) System.out.println(" "+ qName +": "+ text); if (level == 2) inStudent = false; level--; }

  • Слайд 16

    DOM API

    DOM API (на примере org.w3c.dom) Представляет следующие интерфейсы: Node – представляет произвольный элемент дерева (включая текст и атрибуты). Document – представляет документ DOMи служит корнем дерева документа. DocumentType – данный интерфейс представляет DTD документа Element – представляет элемент (тэг) документа, который может иметь подузлы. DocumentFragment – представляет часть (или фрагмент) документа, один или несколько смежных узлов со всеми подэлементами. CDATASection – представляет раздел CDATA. NodeList – представляет упорядоченное множество узлов предназначенных только для чтения. DOMException – при порождении ошибки API DOM создается экземпляр данного класса

  • Слайд 17

    Пример. DOM-парсинг

    import org.w3c.dom.*; import javax.xml.parsers.*; import org.xml.sax.*; import java.io.IOException; publicclass DOMExample { publicstatic Document parse(String filename) throws ParserConfigurationException, SAXException, IOException { return DocumentBuilderFactory.newInstance(). newDocumentBuilder().parse(filename); } publicstaticvoid main(String[] args) throwsException { Document doc = parse(args[0]); NodeList items = doc.getDocumentElement().getChildNodes(); for (int i = 0; i < items.getLength(); i++) if (items.item(i).getNodeName().equals("student")) printStudent(items.item(i)); } privatestaticvoid printStudent(Node node) { System.out.println("Student:"); NodeList nodes = node.getChildNodes(); for (int i = 0; i < nodes.getLength(); i++) if (nodes.item(i).getNodeType() == Node.ELEMENT_NODE) System.out.println(" "+ nodes.item(i).getNodeName() + ": "+ nodes.item(i).getFirstChild().getNodeValue()); } }

  • Слайд 18

    XSL – eXtensible Stylesheet Language

    XSLT – трансформации. XML документ, описывающий способ преобразования одного XML документа в другой (не обязательно XML) документ. Пространство имен http://www.w3.org/1999/XSL/Transform. XPath – язык запросов к XML документу. Состоит из пути к элементу в дереве или вызов функции, результатом запроса будет набор всех элементов, соответствующих пути.

  • Слайд 19

    XSLT – eXtensible Stylesheet Language Transformations

    ... body ...

    ... body ... ... ......

  • Слайд 20

    XPath

    Пример: /html/body/*/span[@name="span1"Равнозначно: /child::html/child::body/child::*/child::span[attribute::name="span1"] Оси:ancestor, ancestor-or-self, attribute (@),child (нет), descendant, descendant-or-self (//), following, following-sibling, namespace, parent (..), preceding, preceding-sibling, self (.) Функции:document, format-number, node, text, current, position, last, count, id, sum Примеры: node//li[last()] ../text() /root/@attribute //book[price > 20] document($path)/root/node

  • Слайд 21

    Пример. XSLT-преобразование

    Student: :
  • Слайд 22

    Пример. XSLT-преобразование из Java

    import javax.xml.transform.*; import javax.xml.transform.stream.*; import java.io.*; publicclass TransformXML { publicstaticvoid main(String[] args) throws TransformerException, IOException, TransformerConfigurationException { TransformerFactory.newInstance(). newTransformer(new StreamSource(args[0])). transform( new StreamSource(args[1]), new StreamResult(System.out)); } }

  • Слайд 23

    Флэнаган Д. Java. Справочник, 4-е издание Пер. с англ. –СПб: Символ-Плюс, 2004.-1040с. http://intuit.ru, курс “Основы XML” http://www.java-tips.org/java-se-tips/java.lang.reflect/ http://j2w.blogspot.com/2008/01/xml-dom.html http://java.sun.com/docs/books/tutorial/reflect/class/index.html http://www.w3schools.com Bruce Eckel. Thinking in Java 2. 2000.

Посмотреть все слайды

Сообщить об ошибке