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–2026 Axofiber, axofiber.info