САЙТ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ НА РУССКОМ ЯЗЫКЕ
×

PHP5 Учебник

PHP Главная PHP Введение PHP Установка PHP Синтаксис PHP Переменные PHP Echo/Print PHP Типы данных PHP Строки PHP Константы PHP Операторы PHP Заявления if...else PHP Заявления switch PHP Цикл while PHP Циклы for, foreach PHP Функции PHP Массивы PHP Сортировка массивов PHP Суперглобальные массивы

PHP Формы

PHP Обработка форм PHP Проверка форм PHP Поля форм PHP Проверка почты PHP Полная форма

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

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

MySQL

MySQL База данных MySQL Установить MySQL Создать БД MySQL Создать таблицу MySQL Вставить данные MySQL Получить ID MySQL Вставить записи MySQL Подготовленные MySQL Выбрать данные MySQL Удалить данные MySQL Обновить данные MySQL Лимит данных

PHP - XML

PHP XML Парсер PHP XML Анализатор PHP XML Вывод PHP XML Экспат PHP XML DOM

PHP - AJAX

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

PHP Примеры

PHP Примеры

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);
?>
Смотреть код »

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

  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 Парсер Справочник.