Лучшее руководство по PHP XML Expat анализатор в 2024 году. В этом руководстве вы можете изучить Что такое XML?,Что Expat да?,устанавливать,XML-файл,Инициализировать XML-анализатор,Более подробная информация PHP Expat анализатор,

PHP XML Expat анализатор

Встроенный в PHP Expat синтаксического анализатора позволяет обрабатывать XML-документы.


Что такое XML?

XML используется для описания данных и сосредоточиться на том, какие данные Да. XML-файл описывает структуру данных.

В XML нет предопределенных тегов. Вы должны определить свои собственные теги.

Чтобы узнать больше о XML, пожалуйста , посетите наш XML учебник .


Что Expat да?

Для чтения и обновления - создать и процесс - документ XML, вам нужен XML-анализатор.

Есть два основных типа XML парсеров:

  • На основе дерева синтаксического анализа: Этот анализатор преобразует документ XML в виде древовидной структуры. Он анализирует весь документ, а также предоставляет доступ к элементам в дереве, таких как объектной модели документа (DOM).
  • Событие на основе синтаксического анализа: XML-документ в виде серии событий. Когда происходит определенное событие, СА будет вызывать функцию для обработки.

Expat анализатор на основе событий синтаксического анализа.

Событийный парсер внимание на содержание документа XML, а не их структуру. Из-за этого, на основе событий, синтаксический анализатор может получить доступ к данным быстрее, чем на основе дерева синтаксического анализа.

Рассмотрим следующий фрагмент XML:

<from>Jani</from>

На основе событий анализатор сообщает XML выше в виде серии из трех событий:

  • Запустить элемент: от
  • Начало секции CDATA, значение: Яни
  • Закрыть элемент: от

Пример XML выше, содержит хорошо сформированные XML. Но этот пример не является действительным XML, так как типа документа (DTD) не связан с ним.

Тем не менее, при использовании Expat парсер, это не имеет никакого значения. Expat анализатор не проверяется на достоверность, игнорировать любые DTD.

В основе событий,, непроверяющий XML парсер, Expat быстрый и легкий, очень подходит для веб-приложений PHP.

Примечание: XML - документ должен быть хорошо образован, в противном случае Expat выдаст ошибку.


устанавливать

Функции синтаксического анализа XML Expat являются частью ядра PHP. Никакой установки не требуется, чтобы использовать эти функции.


XML-файл

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

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


Инициализировать XML-анализатор

Мы хотим, чтобы инициализировать XML-парсер в PHP, определить процессор для различных событий XML, а затем разобрать файл XML.

примеров

<?php
//Initialize the XML parser
$parser=xml_parser_create();

//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case "NOTE":
echo "-- Note --<br>";
break;
case "TO":
echo "To: ";
break;
case "FROM":
echo "From: ";
break;
case "HEADING":
echo "Heading: ";
break;
case "BODY":
echo "Message: ";
}
}

//Function to use at the end of an element
function stop($parser,$element_name)
{
echo "<br>";
}

//Function to use when finding character data
function char($parser,$data)
{
echo $data;
}

//Specify element handler
xml_set_element_handler($parser,"start","stop");

//Specify data handler
xml_set_character_data_handler($parser,"char");

//Open XML file
$fp=fopen("test.xml","r");

//Read data
while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}

//Free the XML parser
xml_parser_free($parser);
?>

Код выше вывод будет:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!

Как это работает:

  1. По xml_parser_create () функция инициализирует XML-анализатор
  2. Создание с другой функции обработчика событий
  3. Добавить xml_set_element_handler () функцию для определения, какую функцию выполнять, когда парсер встречает начальный и конечный теги
  4. Добавить xml_set_character_data_handler () функцию для определения, какую функцию выполнять, когда парсер встречает символьные данные
  5. По xml_parse () функции для разбора файла "test.xml"
  6. В случае, если произошла ошибка, а затем добавить xml_error_string () функцию для преобразования XML-описание текста ошибки
  7. Вызов xml_parser_free () функцию, чтобы освободить назначен xml_parser_create) функции памяти (

Более подробная информация PHP Expat анализатор

Для получения дополнительной информации о функциях PHP Expat, посетите наш PHP XML Parser Reference Manual .