- •2. Управляющие структуры языка php
- •3. Работа с массивами.
- •4. Ассоциативные массивы
- •5. Создание пользовательских функций, передача параметров функции и области видимости переменных
- •6. Функции для работы со строками
- •7. Функции даты/времени и работы с календарем
- •8. Работа с файлами
- •9. Операции с содержимым файлов
- •10. Работа с каталогами
- •11. Регулярные выражения, сопоставление и поиск с шаблоном.
- •Базовый синтаксис и создание регулярных выражений
- •12. Работа с динамическими изображениями
- •ImageGif (идентификатор, [имя файла])
- •14. Управление интерпретатором php
- •15. Отслеживание сеанса, управление сессиями и cookies.
- •16. Работа с бд mysql
- •17. Объектно-ориентированное программирование, создание классов и объектов, доступ к методам и свойствам объекта.
- •18. Сообщения об ошибках языка
- •18. Структура xml – документа. Правила создания. Конструкции языка. (Подробное описание) Структура документа
- •Определение типа документа (dtd).
- •Объявления
- •Объявление xml
- •Объявление типа документа
- •Где могут храниться dtd
- •Объявления элементов и атрибутов xml документа.
- •22. Свойства и методы элементов документа.
- •23. Типы атрибутов xml документа.
- •25. Обработка xml-документов php скриптами
- •26. Стилевые таблицы xsl. Структура xsl- таблиц. Что такое xsl?
- •Правила xsl
- •Корневое правило
- •Отношения между элементами
- •Приоритеты правил
- •27. Встроенные функции xsl.
- •28.Сценарии xsl.
- •29.Использование атрибутов элементов в xsl.
- •30. Фильтрация элементов в xsl. Фильтрация элементов
22. Свойства и методы элементов документа.
23. Типы атрибутов xml документа.
Атрибуты в XML бывают трех типов: строковые, именные (tokenized) и списочные.
Строковые атрибуты могут принимать любые текстовые значения и обозначаются ключевым словом CDATA.
На именные типы наложены определенные лексические и семантические ограничения. Эти типы задаются следующими ключевыми словами:
ID — уникальный идентификатор элемента. Элемент может иметь не более одного атрибута этого типа; параметры для него должны иметь значение #IMPLIED или #REQUIRED.
IDREF — значение атрибута типа ID другого элемента.
IDREFS — список значений типа IDREF, разделенных пробелами.
ENTITY — имя неанализируемого раздела, объявленного в DTD.
ENTITIES — список значений типа ENTITY, разделенных пробелами.
NMTOKEN — любое имя.
NMTOKENS — список значений типа NMTOKEN, разделенных пробелами.
Списочные атрибуты могут принимать значения только из заданного списка. Они подразделяются на:
Перечисление: список имен, разделенных пробелами, заключенный в круглые скобки; возможно задание вариантов с помощью разделителя вертикальная черта (|).
Список нотаций: ключевое слово NOTATION, за которым следует перечисление имен нотаций. Элемент может иметь не более одного атрибута этого типа; значениями атрибута могут быть только имена нотаций, объявленных в DTD.
24. Функции обработки кода 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 tag
xml_get_current_column_number( )
Функция xml_get_current_colunin_number( ) может использоваться в сочетании с xml_get_current_line_number( ) для определения точного местонахождения ошибки в документе XML. Синтаксис:
int xml_get_current_column_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);
$column_number = xml_get_current_column_number($xml_parser)
print "Error! [Line $line_nuimber, Column $column_number]: $err_string";
endif;
endwhile;
Например, если ошибка была обнаружена в шестой строке файла, определяемого манипулятором $fh, сообщение будет выглядеть примерно так:
Error! [Line 6 Column 2]:mismatched tag