Dom xml element php

Парсер PHP XML DOM

Библиотека PHP DOM позволяет вам управлять HTML и XML после загрузки вашего скрипта в новый PHP DOMDocument. Синтаксический анализ — важная концепция, относящаяся к преобразованию исходного кода в более удобный для чтения формат.

Для чтения и изменения HTML и XML лучше всего подходит библиотека DOM, поскольку она автоматически создается вместе с некоторыми версиями PHP.

Парсер XML DOM

Парсер Dom очень хорошо справляется как с XML, так и с HTML-документами. Парсер XML DOM является встроенным в PHP.

DOM — это анализатор на основе дерева (в отличие от анализаторов XML на основе событий).

Парсер Dom перемещается на основе дерева, а перед доступом к данным он загружает данные в объект dom и обновляет данные в веб-браузере.

XML-данные: пример древовидной структуры

Чтобы понять, как DOM просматривает XML-данные, давайте проанализируем следующий пример кода:

Пример

Данные XML, с точки зрения DOM, имеют древовидную структуру:

  • Сам XML-документ относится к уровню 1.
  • Корневой элемент относится к уровня 2.
  • Текстовый элемент Me — это уровень 3.

Свойства DOMDocument

Следующие свойства могут помочь вам найти информацию о вашем XML-документе:

Читайте также:  Red black tree python
Свойство Описание
actualEncoding Не рекомендуется. Это свойство только для чтения, представляющее кодировку документа.
config Не рекомендуется. Когда вызывается DOMDocument :: normalizeDocument (), применяется это свойство конфигурации.
doctype Представляет объявление типа документа, связанное с документом.
documentElement Предоставляет прямой доступ к дочерним узлам в документе.
documentURI Представляет расположение документа. Возвращает NULL, если местоположение не найдено.
encoding Представляет кодировку документа, указанную в объявлении XML.
formatOutput Помогает организовать вывод с необходимыми пробелами и отступами.
implementation Представляет объект DOMImplementation, который управляет документом.
preserveWhiteSpace Указывает не удалять лишние пробелы.
recover Собственный. Включает режим восстановления. Этот атрибут взят не из документации DOM, а из libxml.
resolveExternals Если установлено значение TRUE, этот атрибут загружает внешние сущности из объявления doctype. Это удобно для добавления символов в документы XML.
standalone Не рекомендуется. Указывает, является ли документ автономным. То же, что xmlStandalone.
strictErrorChecking Отображает DOMException при обнаружении ошибок.
replaceEntities Собственный. Указывает, следует ли заменять объекты. Он не является частью спецификации DOM и является уникальным для libxml.
validateOnParse Используется для загрузки и проверки на соответствие DTD.
version Не рекомендуется. Представляет версию XML. То же, что и xmlVersion.
xmlEncoding Указывает кодировку XML-документа. NULL, если кодировка не найдена.
xmlStandalone Указывает, является ли XML-документ автономным. FALSE, если эта информация не найдена.
xmlVersion Указывает номер версии XML-документа. Если объявление не найдено, но документ поддерживает XML, версия 1.0.

XML-файл

Приведенный ниже XML-файл file.xml будет использоваться в нашем примере:

Пример

  You Me The Game You lost it. 

Как загрузить и вывести данные XML

Ниже приведен сценарий, который нам нужно будет использовать для инициализации анализатора XML:

Пример

load('file.xml'); print $xml_doc->saveXML(); ?>

Результат выполнения кода:

Вот шаги этого примера кода:

  1. Мы создаем новый документ XML DOM.
  2. Затем мы используем функцию load для загрузки данных XML в объект.
  3. И, наконец, мы печатаем информацию из созданного нами XML DOMDocument.

Примечание: Используя функцию saveXML(), мы помещаем внутренние данные XML в строку данных. После этого он будет готов к отображению.

Если вы выберете в окне браузера «Просмотр исходного кода», то увидите следующий HTML-код:

  You Me The Game You lost it. 

В приведенном выше примере создается объект DOMDocument и загружается в него XML из файла note.xml.

Затем функция saveXML() помещает внутренний XML-документ в строку, чтобы мы могли его вывести.

Выполнение циклов в файлах XML

Чтобы инициализировать синтаксический анализатор PHP XML, получить доступ к данным и затем выполнить итерацию, вы должны применить цикл foreach:

Пример

load("file.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) < print $item->nodeName . " = " . $item->nodeValue . "
"; > ?>

В этом примере кода выполняются те же шаги: создается новый документ XML DOM, содержащий данные из файла file.xml. Затем мы подаем заявку foreach на печать nodeName и nodeValue .

Вот результат, который мы получаем в таком случае:

Примечание: Обратите внимание, что в нашем примере между каждым элементом есть пустые текстовые узлы. Когда создается XML, он часто содержит пробелы между узлами. Парсер XML DOM рассматривает их как обычные элементы, и если вы о них не знаете, они иногда вызывают проблемы.

Как создать документ PHP DOMDocument, содержащий HTML

Давайте научимся создавать PHP DOMDocuments для изменения HTML-скрипта. В следующем примере кода показано, как создать документ PHP DOMDocument, содержащий HTML:

Пример

loadHTML("Example "); echo $doc->saveHTML(); ?>

PHP DOMDocument: Резюме

  • Используя библиотеку DOM, вы можете обрабатывать как XML-документы так и HTML.
  • DOM (Document Object Model) означает объектная модель документа и относится к древовидным анализаторам XML. Этот метод позволяет вам производить любые операции с XML-данными в очень удобной форме — представляя XML-документ как дерево объектов.
  • Функции парсера DOM являются частью ядра PHP. Для использования этих функций установка не требуется.
  • Способы использования API-интерфейса DOM зависят от поставленных целей, но чаще всего требуется выполнить описанные ниже действия:
    1. Открыть новый документ DOM XML или прочитать его, поместив в оперативную память.
    2. Выполнить манипуляции с документом на уровне узлов.
    3. Вывести результирующий документ XML в виде строки или записать его в файл. Эта операция приводит также к освобождению памяти, используемой синтаксическим анализатором.

Источник

PHP XML DOM Parser

The built-in DOM parser makes it possible to process XML documents in PHP.

The XML DOM Parser

The DOM parser is a tree-based parser.

Look at the following XML document fraction:

The DOM sees the XML above as a tree structure:

Installation

The DOM parser functions are part of the PHP core. There is no installation needed to use these functions.

The XML File

The XML file below («note.xml») will be used in our example:

Load and Output XML

We want to initialize the XML parser, load the xml, and output it:

The output of the code above will be:

If you select «View source» in the browser window, you will see the following HTML:

The example above creates a DOMDocument-Object and loads the XML from «note.xml» into it.

Then the saveXML() function puts the internal XML document into a string, so we can output it.

Looping through XML

We want to initialize the XML parser, load the XML, and loop through all elements of the element:

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) print $item->nodeName . » = » . $item->nodeValue . «
«;
>
?>

The output of the code above will be:

#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don’t forget me this weekend!
#text =

In the example above you see that there are empty text nodes between each element.

When XML generates, it often contains white-spaces between the nodes. The XML DOM parser treats these as ordinary elements, and if you are not aware of them, they sometimes cause problems.

If you want to learn more about the XML DOM, please visit our XML tutorial.

Источник

PHP XML DOM Parser

The built-in DOM parser makes it possible to process XML documents in PHP.

The XML DOM Parser

The DOM parser is a tree-based parser.

Look at the following XML document fraction:

The DOM sees the XML above as a tree structure:

Installation

The DOM parser functions are part of the PHP core. There is no installation needed to use these functions.

The XML File

The XML file below («note.xml») will be used in our example:

Load and Output XML

We want to initialize the XML parser, load the xml, and output it:

The output of the code above will be:

If you select «View source» in the browser window, you will see the following HTML:

The example above creates a DOMDocument-Object and loads the XML from «note.xml» into it.

Then the saveXML() function puts the internal XML document into a string, so we can output it.

Looping through XML

We want to initialize the XML parser, load the XML, and loop through all elements of the element:

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) print $item->nodeName . » = » . $item->nodeValue . «
«;
>
?>

The output of the code above will be:

#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don’t forget me this weekend!
#text =

In the example above you see that there are empty text nodes between each element.

When XML generates, it often contains white-spaces between the nodes. The XML DOM parser treats these as ordinary elements, and if you are not aware of them, they sometimes cause problems.

If you want to learn more about the XML DOM, please visit our XML tutorial.

Источник

Оцените статью