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

PHP учебник

PHP HOME PHP Intro PHP Install PHP Syntax PHP Variables PHP Echo / Print PHP Data Types PHP Strings PHP Constants PHP Operators PHP If...Else...Elseif PHP Switch PHP While Loops PHP For Loops PHP Functions PHP Arrays PHP Sorting Arrays PHP Superglobals

PHP Forms

PHP Form Handling PHP Form Validation PHP Form Required PHP Form URL/E-mail PHP Form Complete

PHP Advanced

PHP Arrays Multi PHP Date and Time PHP Include PHP File Handling PHP File Open/Read PHP File Create/Write PHP File Upload PHP Cookies PHP Sessions PHP Filters PHP Filters Advanced PHP Error Handling PHP Exception

MySQL Database

MySQL Database MySQL Connect MySQL Create DB MySQL Create Table MySQL Insert Data MySQL Get Last ID MySQL Insert Multiple MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX Database AJAX XML AJAX Live Search AJAX RSS Reader AJAX Poll

PHP Examples


PHP Reference

PHP Overview PHP Array PHP Calendar PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones


PHP XML Expat парсер


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


Парсер XML Expat

Парсер Expat — это синтаксический анализатор, основанный на событиях.

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

<from>Jani</from>

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

  • Начальный элемент: от
  • Начало раздела CDATA, значение: Джани
  • Закрыть элемент: от

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
// 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("note.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);
?>

Пример:

  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.