- Парсер PHP XML DOM
- Парсер XML DOM
- XML-данные: пример древовидной структуры
- Пример
- Свойства DOMDocument
- XML-файл
- Пример
- Как загрузить и вывести данные XML
- Пример
- Выполнение циклов в файлах XML
- Пример
- Как создать документ PHP DOMDocument, содержащий HTML
- Пример
- PHP DOMDocument: Резюме
- PHP XML DOM Parser
- The XML DOM Parser
- Installation
- The XML File
- Load and Output XML
- Looping through XML
- PHP XML DOM Parser
- The XML DOM Parser
- Installation
- The XML File
- Load and Output XML
- Looping through XML
Парсер 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-документе:
Свойство | Описание |
---|---|
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(); ?>
Результат выполнения кода:
Вот шаги этого примера кода:
- Мы создаем новый документ XML DOM.
- Затем мы используем функцию load для загрузки данных XML в объект.
- И, наконец, мы печатаем информацию из созданного нами 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 зависят от поставленных целей, но чаще всего требуется выполнить описанные ниже действия:
- Открыть новый документ DOM XML или прочитать его, поместив в оперативную память.
- Выполнить манипуляции с документом на уровне узлов.
- Вывести результирующий документ 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.