DOM Document Object Model - объектная модель документа презентация

Содержание

Слайд 1DOM
DOM — Document Object Model — объектная модель документа, стандартизованная консорциумом

W3C

DOM — программный интерфейс доступа к структуре и содержимому размеченных документов для создания, ведения и анализа структуры и контента

DOM — кэш для хранения экземпляра XML-документа

Слайд 2Типы узлов DOM


Слайд 3Дерево DOM
DOM создает в памяти древовидную версию документа из XML-источника

данных

Слайд 4Класс domNode
Корневым классом для всех DOM-объектов является класс domNode (узел). Все

остальные классы узлов, определенные в стандарте DOM, являются подклассами этого класса.

Методы класса domNode:
nodeType — определение типа узла;
tagName — имя элемента, name — имя атрибута ;
nodeValue — значение узла;



Слайд 5Класс domNode
parentNode — предок контекстного узла:
$node -> parentNode -> tagName;
firstChild —

первый дочерний узел:
$node -> firstChild -> tagName;
lastChild — последний дочерний узел:
$node -> lastChild -> tagName;
previousSibling — узел, предыдущий контекстному в иерархии предка:
$node -> previousSibling -> tagName;
nextSibling — узел, следующий за контекстным в иерархии предка:
$node -> nextSibling -> tagName


Слайд 6Создание объекта DOM


PHP — модуль DOM XML, класс DOMDocument

$dom = new

DOMDocument ();

$dom = new DOMDocument ('1.0');

Слайд 7Загрузка документа в DOM
Свойства класса DomDocument :
PreserveWhiteSpace — определяет режим обработки

пустых текстовых полей (указание не убирать лишние пробелы и отступы. По умолчанию TRUE).

$dom = new domDocument ();
$dom->preserveWhiteSpace=false;
$dom->load('goods.xml') ;
$root = $dom->documentElement;
echo $root->childNodes->length;

ValidateOnParse — позволяет во время чтения XML-файла проверять его корректность на основе документов, описывающих схему анализируемого XML-документа. (загружает DTD и проверяет документ на соответствие. По умолчанию FALSE).




Слайд 8Класс domNode
Свойства класса DomDocument :
ResolveExternals — разрешает при вводе XML-файла подключать

указанные в данном файле внешние XML-документы. (Применяется при включении элементов с символьными данными в XML документ. По умолчанию FALSE.)
FormatOutput — формируется XML-документ с отступами и дополнительными пробелами.

Doctype — указатель на описатель DocType документа. Представляет описатель XML-документа. Узел domDocumentType не имеет дочерних элементов, но содержит два свойства: ENTITYи NOTATION, представляющих описатели.
DocumentEiement — указатель на корневой элемент документа.


Слайд 9Загрузка документа в DOM
Варианты:
Загрузка из файла
Загрузка из строки
Загрузка из потока

Методы класса

DomDocument :
Load()
LoadXML()
Save()
saveXML ()


Слайд 10Загрузка документа в DOM. Класс domDocument
$UsersInfoXML = "nagibator qwertysimeon@pochta.ru10.12.2007 10.12.2007admin 1";



$dom -> loadXML ($UsersInfoXML);
$dom -> saveXML ($UsersInfoXML);

$dom -> load("UsersInfo.xml");
$dom->save('UsersInfo.xml');

Слайд 11Создание узлов DOM. Класс domDocument
Этапы:
Определить, что должно быть добавлено в дерево, и

создать соответствующий новый узел
Указать, куда в дереве должен быть помещен новый узел, и выполнить добавление узла

Методы объекта domDocument
create­Element — создание элемента;
createAttribute — создание атрибута;
createTextNode — создание текстового узла;
create­CDATA­Section — создание секции CDATA;
сreateComment — создание комментария;
createProcessingInstruction—узел инструкции по обработке, содержащий; указанного целевого объекта и данных.

Расположение нового узла в дереве:
appendChild —  добавление нового дочернего узла в конец списка потомков;
setAttribute — добавление нового атрибута;
insertBefore — добавление нового дочернего узла перед опорным узлом.

Слайд 12Создание узлов DOM с помощью PHP
createProcessingInstruction:
$user = $dom -> createProcessingInstruction

("xml", "version = '1.0' encoding = 'windows-1251'");
сreateElement:
$user = $dom->createElement('user');
сreateAttribute:
$login = $dom -> createAttribute ("login");
$login -> Value = "Ivanov";
setAttribute:
$user-> setAttribute (“id", "Ivanov");
appendChild
$users -> appendChild ($user);
insertBefore
$users -> insertBefore ($id, $user);


Слайд 13Создание узлов DOM с помощью PHP
$dom = new DOMDocument();
$DocumentNode =

$dom->createElement('users');
$dom->appendChild($DocumentNode);
$elementNode = $dom->createElement('user');
$DocumentNode->appendChild($elementNode);
$attrNode = $dom->createAttribute('id');
$elementNode->setAttributeNode($attrNode);
$textNode = $dom->createTextNode('1');
$attrNode->appendChild($textNode);
$dom->formatOutput = true;
$dom->save('Users.xml');

Слайд 14Создание узлов DOM с помощью PHP
$dom = new DomDocument();
$users= $dom->appendChild($dom->createElement('users'));


$user = $users->appendChild($dom->createElement('user'));
$login = $user->appendChild($dom->createElement('login', 'Ivanov!'));
$pass = $user->appendChild($dom->createElement('pass', '12345'));
$name = $user->appendChild($dom->createElement('name'));
$firstname = $name->appendChild($dom->createElement('firstname', 'Иван'));
$secondname = $name->appendChild($dom->createElement('secondname', 'Иванов!'));
$lastname = $name->appendChild($dom->createElement('lastname', 'Иванович'));
$email = $user->appendChild($dom->createElement('email', 'Ivanov@gmail.com'));
$dateRegistration= $user->appendChild($dom->createElement('dateRegistration', '30.11.2016'));
$dateLastVisit= $user->appendChild($dom->createElement('dateLastVisit', '30.11.2016'));
$type= $user->appendChild($dom->createElement('type', 'user'));
$isBlocked= $user->appendChild($dom->createElement('isBlocked', '0'));
$dom->formatOutput = true;
$UserRegistration = $dom->saveXML();
$dom->save('UserRegistration.xml');

Слайд 15Создание узлов DOM с помощью PHP

Контактная информация















Слайд 16Создание узлов DOM с помощью PHP
$dom = new DomDocument();
$users= $dom->appendChild($dom->createElement('users'));


$user = $users->appendChild($dom->createElement('user'));
$login = $user->appendChild($dom->createElement('login', ''.$_POST['login'].''));
$pass = $user->appendChild($dom->createElement('pass', ''.$_POST['pass'].''));
$name = $user->appendChild($dom->createElement('name'));
$firstname = $name->appendChild($dom->createElement('firstname', ''.$_POST['firstname'].''));
$secondname = $name->appendChild($dom->createElement('secondname', ''.$_POST['secondname'].''));
$lastname = $name->appendChild($dom->createElement('lastname', ''.$_POST['lastname'].''));
$email = $user->appendChild($dom->createElement('email', ''.$_POST['email'].''));
$dateRegistration= $user->appendChild($dom->createElement('dateRegistration', '30.11.2016'));
$dateLastVisit= $user->appendChild($dom->createElement('dateLastVisit', '30.11.2016'));
$type= $user->appendChild($dom->createElement('type', 'user'));
$isBlocked= $user->appendChild($dom->createElement('isBlocked', '0'));
$dom->formatOutput = true;
$UserRegistration = $dom->saveXML();
$dom->save('UserRegistration.xml');

Слайд 17Корректировка узлов DOM. Класс NodeList

Класс NodeList предоставляет доступ к упорядоченному списку

узлов документа.
Свойства:
length — Количество узлов (от 0 до length–1 включительно).
Методы:
hasChildNodes — возвращение значения true, если узел имеет дочерние элементы, и false - в противном случае.
appendChild — добавление нового дочернего узла в конец списка потомков.
insertBefore — добавление нового дочернего узла перед опорным узлом.
replaceChiId — замена дочернего узла на новый узел.
removeChiId — удаление узла из списка дочерних узлов.
importNode — импорт узла в текущий документ. (если параметр deep имеет значение true, копируются и все дочерние узлы).
getElementsByTagName — возвращают список элементов, имеющих искомое имя узла.
item — возвращение узла с указанным номером. Первый узел имеет номер 0. Последний — length-1.





Слайд 18Корректировка узлов DOM. Класс NodeList
hasChildNodes:
$dom = new DomDocument('1.0');
$dom->load('order.xml');
$node = $dom->getElementsByTagName("order")->item(0);
if

($node->hasChildNodes()) {
echo $node->nodeValue; }

insertBefore:
$dom = new DomDocument;
$dom->load('order.xml');
$node = $dom->getElementsByTagName("order")->item(0);
$id = $node->insertBefore($dom->createElement('id', "Ivanov"), $dom->getElementsByTagName("goodsList")->item(0) );
$dom->save('order.xml');

item:
$dom = new DomDocument;
$dom->load('order.xml');
echo $dom->getElementsByTagName("order")->item(1)->nodeValue;



Слайд 19Удаление узлов DOM
removeChild:
$dom = new DOMDocument;
$dom->load('UserRegistration.xml');
$users = $dom->documentElement;
$user = $users->getElementsByTagName('user')->item(0);
$users2 =

$users->removeChild($user);
echo $dom->save(‘UserRegistration.xml');

removeAttribute:
$dom = new DOMDocument;
$dom->load('UserRegistration.xml');
$users = $dom->documentElement;
$user = $users->getElementsByTagName('user')->item(0);
$isBlocked = $user -> getAttributeNode ("isBlocked");
$user -> removeAttributeNode ($isBlocked);
echo $dom->save('UserRegistration.xml');

Слайд 20Удаление узлов DOM

echo '

';

if ($_POST['submit']) {
$dom = new DOMDocument;
$dom->load('goods.xml');
$xpath_item_XML = new DOMXPath($dom);

foreach ($xpath_item_XML ->query('//item[id="0145"]') as $node){
$usersDel = $dom->documentElement->removeChild($node);
}
echo $dom->save('goods.xml');
}

Слайд 21XPath-адресация
PHP-класс DOMXPath:
$xpath = new DOMXPath ($dom);

Свойство:
Document — хранение ссылки на анализируемый

документ

Методы:
query —поиск в документе узлов, удовлетворяющих условию, заданному в строке Xpath.

evaluate — поиск в документе узлов, удовлетворяющих условию, заданному в строке Xpath (возвращает текстовый результат)








Слайд 22XPath-адресация
$dom = new DOMDocument();
$dom -> load (“User.xml");
$user='Ivanov';
$number =

0;
$elements = $dom->getElementsByTagName("login");
foreach ($elements as $element) {
if ($element->nodeValue == $user) {
$number++;
}
}
echo $number;

Слайд 23XPath-адресация
$dom = new DOMDocument();
$dom -> load (“User.xml");
$dom->preserveWhiteSpace=false;
$xpath = new

DOMXPath($dom);
$result = $xpath->query("//user[login='Ivan']");
echo $result->length;

$dom = new DOMDocument();
$dom -> load ("test1.xml");
$dom->preserveWhiteSpace=false;
$xpath = new DOMXPath($dom);
echo $xpath->evaluate("count(//user[login='Ivan'])");

Слайд 24XPath-адресация
$user_XML = new DOMDocument ();
$user_XML -> load (“User.xml");
$xpath_user_XML = new DOMXPath($user_XML);
echo

'';
echo '';
echo '';
echo '';
foreach ($xpath_user_XML ->query('//user/name') as $el) {
echo '';
echo '';
echo '';
}
echo "
ИмяФамилияОтчество
'.$el->getElementsByTagName('firstname')->item(0)-> nodeValue.''.$el->getElementsByTagName('secondname')->item(0)-> nodeValue.''.$el->getElementsByTagName('lastname2')->item(0)-> nodeValue.'
"

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика