Привет, Гость!
home login register
[+] Купить Рекламу
Хостинг для тебя! Заходи не пожалеешь
Что мы делаем полезного на официальном сайте WAP-поддержки? Подробно ...
Вступайте в нашу группу ВКОНТАКТЕ
Поздравляем, новичка с ID:1000
Как самомусделать QR-код
IT новости: в Windows новая опасная уязвимость
Проблемы восприятия IT
Как подтвердить авторство в Google

Учебник PHP #14
<< 1 ... 5 6 7 8 9 >>
string открытый_идентификатор) {

...

}

Первый параметр определяет анализатор XML. Второй параметр определяет имя объявления, четвертый — системный идентификатор, а пятый — открытый идентификатор объявления. Третий параметр, база, в настоящее время не используется, однако его объявление все равно обязательно.

xml_set_object( )

Функция ассоциирует анализатор XML с некоторым объектом. Синтаксис:

void xml_set_object(int анализатор, object &о6ъект)

Первый параметр определяет анализатор XML, а второй содержит ссылку на объект, методы которого будут использоваться для обработки компонентов XML. Таким образом, функция xml_set_object связывает анализатор с объектом. Как правило, она вызывается в конструкторе объекта перед определениями функций-обработчиков:

class xmlDB {

VAR $xmlparser:

function xmlDB( ) {

$this->xmlparser = xml_parser_create();

// Связать анализатор с объектом

xml_set_object($this->xmlparser. &$this);

// Определить функции-обработчики

xml_set_element_handler($this->xmlparser,

"startTag","endTag");

xml_set_character_data($this->xmlparser,"characterData");

}

... Определения функций-обработчиков startTag. endTag. characterData и т.д. ...

} // class xmlDB

В порядке эксперимента попробуйте закомментировать вызов xml_set_object( ). Вы увидите, что при выполнении этого фрагмента выводятся сообщения об ошибках, в которых говорится о невозможности обращения к методам объекта.

xml_set_processing_instruction_handler( )

Функция регистрирует пользовательскую функцию для работы с Pi-инструкциями.

Синтаксис:

int xml_set_processing_instruction_handler(int анализатор, string обработчик_инструкций)

Первый параметр определяет анализатор XML, а второй — имя пользовательской функции, используемой при обработке Pi-инструкций. Определение функции-обработчика должно выглядеть так:

function обработчик_инструкций (int анализатор, string приложение, string инструкция) {

...

}

Первый параметр определяет анализатор XML, второй — имя приложения, выполняющего инструкции, а третий — инструкцию, передаваемую приложению.

xml_set_unparsed_entity_decl_handler( )

Функция регистрирует пользовательскую функцию для необработанных внешних ссылок на сущности. Синтаксис:

int xml_set_external_entity_ref_handler(int анализатор, string обработчик_внешних_ссылок)

Первый параметр определяет анализатор XML, а второй — имя пользовательской функции, используемой для обработки необработанных внешних ссылок. Определение функции-обработчика должно выглядеть так:

function обработчик_внешних_ссылок (int анализатор, string сущность, string база, string системный_идентификатор. string открытый_идентификатор, string имя_объявления) {

...

}

Первый параметр определяет анализатор XML. Второй параметр определяет имя ссылки, четвертый — системный идентификатор ссылки на сущность, а пятый — открытый идентификатор ссылки. Третий параметр, база, в настоящее время не используется, однако его объявление все равно обязательно. Наконец, последний параметр определяет имя синтаксического объявления.

На этом завершается наше краткое знакомство с обработчиками и функциями регистрации. Впрочем, для эффективной обработки документов XML вам понадобятся и другие функции. В следующем разделе представлены остальные функции РНР, связанные с обработкой кода XML.

Функции обработки кода XML

Хотя реализация всех функций-обработчиков не обязательна (документы XML не обязаны содержать элементы всех типов), по крайней мере три функции должны присутствовать во всех сценариях, работающих с XML.

xml_parser_create( )

Перед обработкой документа XML необходимо предварительно создать анализатор. Синтаксис:

int xml_parser_create([stnng кодировка])

Необязательный параметр определяет кодировку исходного текста. В настоящее время поддерживаются три варианта кодировки:

UTF-8;
US-ASCII;
ISO-8859-1 (используется по умолчанию).

По аналогии с тем, как функция fopen( ) возвращает манипулятор открытого файла, функция xml_parser_create( ) также возвращает манипулятор, используемый для вызова различных функций в процессе обработки XML. При одновременной обработке нескольких документов можно создать сразу несколько анализаторов.

xml_parse()

Функция xml_parse( ) выполняет обработку документа XML. Синтаксис:

int xml_parse(int анализатор, string данные [int завершение])

Первый параметр определяет анализатор XML (используется значение, возвращаемое при вызове xml_parser_create( )). Если необязательный параметр завершение равен TRUE, передаваемый фрагмент данных является последним. Как правило, это происходит при достижении конца обрабатываемого файла.

xml_parser_free( )

Функция освобождает ресурсы, выделенные для работы анализатора. Синтаксис:

int xml_parser_free(int анализатор)

Параметр функции определяет анализатор XML.

Другие полезные функции

В РНР также существуют другие функции, упрощающие процесс обработки кода XML.

utf8_decode( )

Функция преобразует данные в кодировку ISO-8859-1. Предполагается, что преобразуемые данные находятся в кодировке UTF-8. Синтаксис:

string utf8_decode(string данные)

Параметр данные содержит преобразуемые данные в кодировке UTF-8.

utf8_encode( )

Функция преобразует данные из кодировки ISO-8859-1 в кодировку UTF-8. Синтаксис:

string utf8_decode(string данные)

Параметр данные содержит преобразуемые данные в кодировке ISO-8859-1.

xml_get_error_code( )

Функция xm1_get_error_code( ) получает код ошибки, возникшей в процессе обработки XML. Код ошибки передается функции xml_error_string( ) (см. ниже) для интерпретации. Синтаксис:

int xml_error_code(int анализатор)

Параметр функции определяет анализатор XML. Пример использования приведен ниже, в описании функции xml_get_current_line_number( ).

xml_error_string( )

Ошибкам, возникающим в процессе анализа кода XML, присваиваются числовые коды. Функция xml_error_string( ) возвращает текстовое описание ошибки по ее коду. Синтаксис:

string xml_error_string(int код)

В параметре функции передается код ошибки (вероятно, полученный при вызове функции xml_get_error_code( )). Пример использования функции приведен ниже, в описании функции xml_get_current_line_number( ).

xml_get_current_line_number( )

Функция возвращает номер текущей строки, обрабатываемой анализатором XML. Синтаксис:

int xml_get_current_line_number(int анализатор)

Параметр функции определяет анализатор XML. Пример использования функции:

while ($line - fread($fh. 4096)) :

if (! xml_parse($xml_parser. $line. feof($fh)));

$err_string - xml_error_string(xml_get_error_code($xml_parser));

$line_number - xml_get_current_line_number($xml_parser);

print "Error! [Line Sline_number]: $err_string";

endif;

endwhile;

Например, если ошибка была обнаружена в шестой строке файла, определяемого манипулятором $fh, сообщение будет выглядеть примерно так:

Error! [Line 6]:mi snatched
Комментарии (0)
<< 1 ... 5 6 7 8 9 >>
Скачать Java книгу

»php/mysql/pdo/js
В библиотеку

На главную

Сообщество wap разработчиков I HwapCMS официальный сайт поддержки


RSS-лента
Генерация: 0.0069 сек.