Учебник по основам PHP. PHPBeginner



         

XML-интерпретация - часть 10


Функция позволяет получить в строке описание кода ошибки (возвращаемое функцией xml_get_error_code()). Если код недействителен, возвращается FALSE.

xml_get_current_line_number

Получение номера текущей интерпретируемой строки документа

int xml_get_current_line_number (int parser)

xml_get_current_column_number

Получение номера обрабатываемого байта в текущей интерпретируемой строке документа

int xml_get_current_column_number (int parser)

xml_get_current_byte_index

Получение позиции текущего байта документа

int xml_get_current_byte_index (int parser)

Нумерация байтов начинается с 0.

xml_parse_into_struct

Занесение документа XML в структурированный массив

int xml_parse_into_struct (int parser, string data, array &values, array &index)

Функция заносит XML-документ в 2 параллельные структуры: массив values содержит структуру тегов и их содержимое, a Index содержит вспомогательные индексы для облегчения нахождения начальных и конечных тегов в первом массиве (массивы следует передавать по ссылке).

$simple = "<para><note>simple note</note>
</para>"; $р = xml_parser_create();

xml_parse_i nto_struct($p.Ssimple.&$vais.&$т ndex);

xml_parser_free($p). echo "Index "; pnnt_r($index),

echo "\nVals ": pnnt_r($vals);

При запуске сценарий выводит:

Index Arrayf [PARA] » Array ( [0] => 0 [1] => 2 )

[NOTE] => Array ( [0] => 1 ) ) Vals Array(

[0] => Array ([tag] => PARA

[type] => open [level] => 1 ) [1] -> Array ([tag] => NOTE

[type] => complete [level] => 2 [value] => simple note )

[2] => Array ([tag] => PARA k [type] => close

[level] => 1 ; } < /FONT >

Интерпретация сложных документов становится громоздкой при использовании обработчиков. Хотя эта функция и не создает объект, подобный DOM, она генерирует структуру, которую легко преобразовать в древовидную. Можно, например, создавать объекты, представляющие данные. Следующий пример демонстрирует создание объектов из xml базы данных химических элементов.




Содержание  Назад  Вперед