ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

PHP Учебник

PHP СТАРТ PHP Введение PHP Установка PHP Синтаксис PHP Комментарии PHP Переменные PHP Echo / Print PHP Типы данных PHP Строки PHP Числа PHP Константы PHP Операторы PHP If...Else...Elseif PHP Switch PHP Циклы PHP Функции PHP Массивы PHP Глобальные переменные

PHP Формы

PHP Обработка форм PHP Проверка формы PHP Обязательные поля формы PHP Форма URL/E-mail PHP Полная форма

PHP Продвинутый

PHP Дата и время PHP Подключение файлов PHP Обработка файлов PHP Файл Открыть/Читать PHP Файл Создать/Записать PHP Загрузка файлов PHP Cookies PHP Сессии PHP Фильтры PHP Расширенные фильтры PHP JSON

PHP OOП

PHP Что такое ООП PHP Классы/Объекты PHP Конструктор PHP Деструктор PHP Модификаторы доступа PHP Наследование PHP Константы PHP Абстрактные классы PHP Трейты PHP Статические методы PHP Статические свойства

MySQL База данных

MySQL База данных MySQL Коннект MySQL Создать DB MySQL Создать таблицы MySQL Вставить данные MySQL Получить последний ID MySQL Вставить несколько MySQL Подготовленный MySQL Выбрать данные MySQL Where MySQL Сортировать MySQL Удалить данные MySQL Обновить данные MySQL Ограничить данные

PHP XML

PHP XML Парсеры PHP SimpleXML Парсер PHP SimpleXML - Получить PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Введение AJAX PHP AJAX База данных AJAX XML AJAX Живой поиск AJAX Опрос

PHP Примеры

PHP Примеры PHP Викторина PHP Упражнения PHP Сертификация

PHP Справочник

PHP Обзор PHP Массив PHP Календарь PHP Данные PHP Каталог PHP Ошибка PHP Файловая система PHP Фильтр PHP FTP PHP JSON PHP Libxml PHP Mail PHP Математический PHP Разное PHP MySQLi PHP Сеть PHP SimpleXML PHP Поток PHP Строка PHP Обработка переменных PHP XML Парсер PHP Zip PHP Часовые пояса

PHP. Уроки для начинающих

PHP XML Парсер Expat


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


XML Парсер Expat

Парсер Expat - это event-based парсер (основанный на событиях, событийный).

Посмотрите на следующую часть XML:

<from>Jani</from>

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

  • Начать элемент: from
  • Начать CDATA секцию, значение: Jani
  • Закрыть элемент: from

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


XML файл

XML файл "note.xml" будет использоваться в примере ниже:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</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 "-- Note --<br>";
    break;
    case "TO":
    echo "To: ";
    break;
    case "FROM":
    echo "From: ";
    break;
    case "HEADING":
    echo "Heading: ";
    break;
    case "BODY":
    echo "Message: ";
  }
}

// Функция для использования в конце элемента
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)));
}

// Свободный XML парсер
xml_parser_free($parser);
?>
Запустить пример »

Объяснение примера:

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

Больше об PHP XML Expat парсере

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