ГлавнаяСтатьиФотографияМатериалыКарта узлаО себе(версия для печати)

PHP-сценарий для разбора XML

Во многих PHP-сценариях я использую XML-текст для хранения и передачи данных. Существуют различные дополнения к интерпретатору PHP, позволяющие обрабатывать XML-документы. Но, видимо, мне было лень их использовать, и я как-то написал анализатор на самом PHP.

Загрузить

Описание

Подключите модуль «xml.lib.php» и вызывайте функцию ReadXML ( $MarkUp ), которая строит массив, соответственно иерархии элементов XML-текста. Диагностика правильности документа не производится.

Пример работы

В php-документе пишем строки:

<?php
  include_once ( "xml.lib.inc" );
  $XML = ReadXML ( "<doc>Test document <ul><li>1 st</li><li>2 nd</li></ul></doc>" );
 
  // Обратное отладочное преобразование в XML-текст
  PrintXML ( $XML[0], 0 );
 
  // Отладочный вывод массива
  var_export ( $XML, true );
?>

В итоге получаем следующий вывод:

<doc>
. . Test document
. . <ul>
. . . . <li>
. . . . . . 1 st
. . . . </li>
. . . . <li>
. . . . . . 2 nd
. . . . </li>
. . </ul>
</doc>
array ( 0 => array ( 'ELEM' => 'TAG', 'NAME' => 'doc', 'BODY' => array ( 0 => array ( 'ELEM' => 'TEXT', 'BODY' => 'Test document', ), 1 => array ( 'ELEM' => 'TAG', 'NAME' => 'ul', 'BODY' => array ( 0 => array ( 'ELEM' => 'TAG', 'NAME' => 'li', 'BODY' => array ( 0 => array ( 'ELEM' => 'TEXT', 'BODY' => '1 st', ), ), ), 1 => array ( 'ELEM' => 'TAG', 'NAME' => 'li', 'BODY' => array ( 0 => array ( 'ELEM' => 'TEXT', 'BODY' => '2 nd', ), ), ), ), ), ), ), )
19 февраля 2005—19 февраля 2005
Максим Проскурня
© 1997–2016 Axofiber