PHP5 XML Expat парсер
Встроенный синтаксический анализатор XML Expat позволяет обрабатывать XML документы на PHP.
XML Expat Парсер
Парсер Экспат - это событие-парсер.
Рассмотрим следующую XML часть:
<from>Татьяна</from>
Событие-парсер, сообщает XML как серию из трех событий:
- Запустить элемент: from
- Запустить раздел CDATA, значение: Татьяна
- Закрыть элемент: from
Функции синтаксического анализатора XML Expat являются частью ядра PHP. Нет необходимой установки для использования этих функций.
XML Файл
XML файл "note.xml" будет использоваться в примере ниже:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Андрей</to>
<from>Татьяна</from>
<heading>Напоминание</heading>
<body>Не забудь меня на выходных.!</body>
</note>
XML Expat парсер инициализация
Мы хотим инициализировать XML Expat парсер в PHP, определить некоторые обработчики для различных событий XML, а затем проанализируем файл XML.
Пример
<?php
// Инициализации XML парсер
$parser=xml_parser_create();
// Функция для использования в начале элемента
function start($parser,$element_name,$element_attrs) {
switch($element_name) {
case "NOTE":
echo "-- Примечание --<br>";
break;
case "TO":
echo "От: ";
break;
case "FROM":
echo "Для: ";
break;
case "HEADING":
echo "Заголовок: ";
break;
case "BODY":
echo "Сообщение: ";
}
}
// Функция для использования в конце элемента
function stop($parser,$element_name) {
echo "<br>";
}
// Функцию использовать при поиске данных
function char($parser,$data) {
echo $data;
}
// Указать обработчик элементов
xml_set_element_handler($parser,"start","stop");
// Указать обработчик данных
xml_set_character_data_handler($parser,"char");
// Открыть файл XML
$fp=fopen("note.xml","r");
// Чтение данных
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)));
}
// Cвободный парсер XML
xml_parser_free($parser);
?>
Смотреть код »
Объяснение примера:
- Инициализация XML парсер с функцией
xml_parser_create()
- Создание функций для использования с различными обработчиками событий
- Добавить функцию
xml_set_element_handler()
чтобы указать, какая функция будет выполняться при обнаружении парсером открывающего и закрывающего тегов - Добавить функцию
xml_set_character_data_handler()
указывает, какая функция будет выполняться при обнаружении синтаксическим анализатором символьных данных - Синтаксический анализ файла "note.xml" с функцией
xml_parse()
- В случае ошибки добавьте функцию
xml_error_string()
преобразования ошибки XML в текстовое описание - Вызов функции
xml_parser_free()
освободить память, выделенной функцииxml_parser_create()
PHP XML Expat Парсер Справочник
Для получения дополнительной информации о функциях PHP Expat, посетите наш
PHP XML Парсер Справочник.