1 / 17

XML- технологии Лекция 6

XML- технологии Лекция 6. Технология DOM. DOM. DOM — Document Object Model — объектная модель документа, стандартизованная консорциумом W3C DOM — программный интерфейс доступа к структуре и содержимому размеченных документов для создания, ведения и анализа структуры и контента

jolie
Download Presentation

XML- технологии Лекция 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML-технологииЛекция 6 Технология DOM

  2. DOM • DOM — Document Object Model — объектная модель документа, стандартизованная консорциумом W3C • DOM — программный интерфейс доступа к структуре и содержимому размеченных документов для создания, ведения и анализа структуры и контента • DOM — кэш для хранения экземпляра XML-документа

  3. Дерево DOM DOM создает в памяти древовидную версию документа из XML-источника данных

  4. Стандарты DOM Уровень (level) — версия DOM-спецификации от W3C

  5. Типы узловDOM

  6. Типы узловDOM. Пример

  7. Способы применения DOM • DOM на сервере • DOM на клиенте

  8. Создание объекта DOM • Основной объект— Document PHP —модуль DOM XML, класс DOMDocument • $dom = newDOMDocument(); • $dom = newDOMDocument ('1.0');

  9. Загрузка документа в DOM Варианты: • Загрузка из файла • Загрузка из строки • Загрузка из потока В PHP-классе DomDocument 2 метода: • Load • LoadXML Примеры • $dom->load ('СтудАтр.xml'); • $textXML = "<СтудАтр> <студент код = 's01' фио = 'Иванов' рейтинг = '20' кафедра = 'АСУ'><сдача оценка = '4' дата = '25-дек'> <предмет код = 'p01' название = 'Теория систем' цикл = 'ОПД' объем = '120' кафедра = 'АСУ'/> </сдача></студент></СтудАтр>«; $dom -> loadXML ($textXML);

  10. Создание узлов DOM Этапы: • Определить, что должно быть добавлено в дерево, и создать соответствующий новый узел • Указать, куда в дереве должен быть помещен новый узел, и выполнить добавление узла Методы объекта Document • create­Element — создание элемента • createAttribute— создание атрибута • createTextNode— создание текстового узла • create­CDATA­Section— создание секции CDATA • сreateComment — создание комментария Расположение нового узла в дереве: • Привязка к существующему узлу дерева • Привязка к отношению иерархии между узлами

  11. Создание узлов DOM с помощью PHP • createProcessingInstruction: $pi = $dom -> createProcessingInstruction ("xml", "version = '1.0' encoding = 'windows-1251'"); • сreateElement: $student = $dom -> createElement ("студент"); • сreateAttribute: $fio = $dom -> createAttribute ("фио"); $fio -> Value = "Иванов"; • setAttribute: $student-> setAttribute ("фио", "Иванов"); • appendChild $student -> appendChild ($kod); • insertBefore $student -> insertBefore ($kaf, $reit);

  12. Удаление узлов DOM • removeChild: $xml -> removeChild ($xml -> documentElement); • removeAttribute $stud = $xml -> getElementsByTagName ("студент") -> item (0); $stud -> removeAttribute ('фио'); • removeAttributeNode $stud = $xml -> getElementsByTagName ("студент") -> item (0); $fio = $stud -> getAttributeNode ("фио"); $stud -> removeAttributeNode ($fio); • removeAttributeNS -1- $stud = $xml -> getElementsByTagName ("студент") -> item (0); $stud -> removeAttributeNS ('http:asu', 'фио'); -2- $stud = $xml -> getElementsByTagName ("студент") -> item (0); $sdacha = $stud -> getElementsByTagName ("сдача") -> item (0); $stud -> removeChild ($sdacha);

  13. Редактирование узлов DOM • cloneNode — копирование узла: • $clone = $student -> cloneNode (true); • replaceChild — замена узла дерева в DOM: • $dom -> replaceChild ($clone, dom -> DocumentElement); • removeChild— удаление узла дерева в DOM: • $student -> removeChild(); • removeAttribute и removeAttributeNode — удаление атрибутов

  14. Обход узлов дерева DOM • nodeType — определение типа узла: • Node -> nodeType • tagName — имя элемента, name — имя атрибута • removeChild— удаление узла дерева в DOM: • $student -> removeChild(); • removeAttribute и removeAttributeNode — удаление атрибутов

  15. Обход узлов дерева DOM • parentNode — предок контекстного узла: • $node -> parentNode -> tagName; • firstChild — первый дочерний узел: • $node -> firstChild -> tagName; • lastChild — последний дочерний узел: • $node -> lastChild -> tagName; • previousSibling — узел, предыдущий контекстному в иерархии предка: • $node -> previousSibling -> tagName; • nextSibling — узел, следующий за контекстным в иерархии предка: • $node -> nextSibling -> tagName • hasAttributes — проверка наличия атрибутов • hasChildNodes — проверка наличия дочерних узлов

  16. XPath-адресация • PHP-класс DOMXPath: • $xpath = newDOMXPath ($dom); • Запросы: • query: $query1 = "//студент [@фио = 'Иванов']/сдача [предмет/@название = 'Базы данных']/@оценка"; echo$xpath -> query ($query1) -> item (0) -> value; • evaluate: $query2 = "count (//студент [@фио = 'Иванов']/сдача)"; echo$xpath -> evaluate ($query2, $dom); • getElementsByTagName: $result = $dom -> getElementsByTagName ("студент");

  17. XSL-трансформация с помощью DOM • Базовый класс в PHP — XsltProcessor: • $xp = newXsltProcessor(); • Загрузка таблицы стилей— метод Load: • $xsl = newDomDocument; • $xsl -> load ("stylesheet.xsl"); • Привязка таблицы стилей — метод importStylesheet: • $xp->importStylesheet($xsl); • Преобразование: • transformToXml: • echo $xp -> transformToXml ($xml); • transformToUrl: • $xp -> transformToURI ($xml, 'file:///result.html'); • transformToDoc: • $result = $xp -> transformToDoc ($xml); • echo $result -> saveXML ();

More Related