Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!-- Создание XML-строки и XML-документ при помощи DOM -->
- <?
- $dom = new DomDocument('1.0', 'utf-8');
- //добавление корня - <books>
- $books = $dom->appendChild($dom->createElement('books'));
- //добавление элемента <book> в <books>
- $book = $books->appendChild($dom->createElement('book'));
- // добавление элемента <title> в <book>
- $title = $book->appendChild($dom->createElement('title'));
- // добавление элемента текстового узла в <title>
- $title->appendChild($dom->createTextNode('Great American Novel'));
- // форматирование для читабильности: установка атрибута formatOutput domDocument в значение true
- $dom->formatOutput = true;
- // сохранение XML в виде строки
- $string = $dom->saveXML();
- // сохранение XML в файла
- $dom->save('result1.xml');
- ?>
- <!-- Импортируем объект SimpleXMLElement в объект DOMElement -->
- <?
- // интерпретируем XML-строку в обьект SimpleXMLElement
- $sxe = simplexml_load_string('<books><book><title>Great American Novel</title></book></books>');
- if ($sxe === false) {
- echo 'Error while parsing the document';
- exit;
- }
- // получаем объект DOMElement из объекта SimpleXMLElement
- $dom_sxe = dom_import_simplexml($sxe);
- if ($dom_sxe === false) {
- echo 'Error while converting XML';
- exit;
- }
- $dom = new DOMDocument('1.0');
- // импортируемый узел с вложенными элементами (т.е. все дерево узла)
- $dom_sxe = $dom->importNode($dom_sxe, true);
- // добавление элемента текстового узла в <title>
- $dom_sxe = $dom->appendChild($dom_sxe);
- // сохранение XML в файла и вывод на экран его размера (в байтах)
- echo $dom->save('result2.xml');
- ?>
- <!-- Импортируем объект DOMElement в объект SimpleXMLElement -->
- <?
- $dom = new domDocument;
- $dom->loadXML('<books><book><title>Great American Novel</title></book></books>');
- if (!$dom) {
- echo 'Error while parsing the document';
- exit;
- }
- $s = simplexml_import_dom($dom);
- echo $s->book[0]->title; // Great American Novel
- ?>
- <!-- Из XML-файла извлекается элемент -->
- <?php
- include 'example.php';
- $xml = new SimpleXMLElement($xmlstr);
- echo $xml->book[0]->plot; // "Cliff meets Lovely Woman. ..."
- ?>
- <!-- Из XML-файла извлекается несколько экземпляров элемента -->
- <?
- include 'example.php';
- $xml = new SimpleXMLElement($xmlstr);
- foreach ($xml->book as $book) {
- echo $book->plot, '<br />';
- }
- ?>
- <!-- Обращение SimpleXML к атрибутам элемента -->
- <?
- //Повторяем входной XML-файл повторяется для наглядности
- $xmlstr = <<<XML
- <?xml version='1.0' standalone='yes'?>
- <books>
- <book>
- <title>Great American Novel</title>
- <characters>
- <character>
- <name>Cliff</name>
- <desc>really great guy</desc>
- </character>
- <character>
- <name>Lovely Woman</name>
- <desc>matchless beauty</desc>
- </character>
- <character>
- <name>Loyal Dog</name>
- <desc>sleepy</desc>
- </character>
- </characters>
- <plot>
- Cliff meets Lovely Woman. Loyal Dog sleeps, but wakes up to bark
- at mailman.
- </plot>
- <success type="bestseller">4</success>
- <success type="bookclubs">9</success>
- </book>
- </books>
- XML;
- ?>
- <?
- include 'example.php';
- $xml = new SimpleXMLElement($xmlstr);
- foreach ($xml->book[0]->success as $success) {
- switch((string) $success['type']) { // с преобразованием в строку при помощи оператора (string), т.к. РНР рассматривает элемент как объект
- case 'bestseller':
- echo $success, ' months on bestseller list';
- break;
- case 'bookclubs':
- echo $success, ' bookclub listings';
- break;
- }
- }
- ?>
- <!-- Изменение текстового узла с помощью SimpleXML -->
- <?
- include 'example.php';
- $xml = new SimpleXMLElement($xmlstr);
- $xml->book[0]->characters->character[0]->name = 'Big Cliff';
- echo $xml->asXML(); // возвращает сформированный XML документ в виде строки используя SimpleXML элемент
- ?>
- <!-- Добавление дочерних и текстовых узлов с помощью SimpleXML -->
- <?
- include 'example.php';
- $xml = new SimpleXMLElement($xmlstr);
- $character = $xml->book[0]->characters->addChild('character');
- $character->addChild('name', 'Yellow Cat');
- $character->addChild('desc', 'aloof');
- $success = $xml->book[0]->addChild('success', '2');
- $success->addAttribute('type', 'reprints');
- echo $xml->asXML();
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement