| |||||||||||||||||||||||||||||||||||||||||||||||||
CIV. Функции разборщика XMLВведениеОб XMLXML (eXtensible Markup Language) это формат данных для обмена структурированными документами в Web. Это стандарт, созданный консорциумом World Wide Web consortium (W3C). Информация о XML и сопутствующих технологиях находится на сайте http://www.w3.org/XML/ УстановкаЭто расширение использует библиотеку expat, которую можно найти на http://www.jclark.com/xml/. Makefile, который поставляется вместе с expat, не строит библиотеку по умолчанию. Вы можете использовать такое make-правило:
Пакет RPM-исходников expat можно найти на http://sourceforge.net/projects/expat/ Заметьте, что при использовании Apache-1.3.7 или новее у вас уже имеется соответствующая библиотека expat. Просто сконфигурируйте PHP с использованием --with-xml (без дополнительного пути), и он будет автоматически использовать библиотеку expat, встроенную в Apache. В UNIX - запустите configure с опцией --with-xml. Библиотека expat должна быть установлена в таком месте, где компилятор сможет её найти. Если вы компилируете PHP как модуль для Apache 1.3.9 или новее, PHP будет автоматически использовать связанную библиотеку expat из Apache. Вам может понадобиться установка флагов CPPFLAGS и LDFLAGS в вашем окружении до запуска configure, если вы установили expat как-то экзотично. Постройте PHP. Tada! Вот и всё. Об этом расширенииЭто расширение PHP реализует поддержку expat James'а Clark'а в PHP. Этот набор утилит позволяет разбирать, но не проверять, XML-документы. Он поддерживает три исходные кодировки символов, также предоставляемые PHP: US-ASCII, ISO-8859-1 и UTF-8. UTF-16 не поддерживается. Это расширение позволяет создавать XML-разборщики и определять обработчики различных XML-событий. Каждый XML-разборщик также имеет несколько параметров, которые вы можете настроить. Вот имеющиеся XML-обработчики: Таблица 1. Поддерживаемые XML-обработчики
Выравнивание регистра/Case FoldingФункции обработчиков элементов могут получать имена своих элементов case-folded. Case-folding определяется стандартом XML как "процесс, применяемый к последовательности символов, когда те из них, которые идентифицируются как non-uppercase/не в верхнем регистре, заменяются своими эквивалентами верхнего регистра". Иначе говоря, если речь идёт о XML, case-folding означает перевод в верхний регистр. По умолчанию все имена элементов, передаваемые функциям обработчиков, передаются с выравниванием регистра. Это поведение может запрашиваться и контролироваться XML-разборщиком с помощью функций xml_parser_get_option() и xml_parser_set_option(), соответственно. Коды ошибокСледующие константы определены для кодов ошибок XML (как возвращаемые xml_parse()):
Кодировка символовXML-расширение РНР поддерживает набор символов Unicode через различные кодировки символов. Есть два типа кодировок символов, кодировка источника и кодировка цели. Внутреннее представление документа в PHP всегда кодируется в UTF-8. Кодировка источника делается, когда XML-документ разбирается. После создания XML-разборщика кодировка источника может быть специфицирована (эта кодировка не может быть изменена позднее, в период существования XML-разборщика). Поддерживаются кодировки источника ISO-8859-1, US-ASCII и UTF-8. Первые две это однобайтные кодировки, то есть каждый символ представлен одним байтом. UTF-8 может кодировать символы, составленные из переменного количества бит (до 21) в 1-4 байтах. По умолчанию кодировка источника в РНР - ISO-8859-1. Целевая кодировка выполняется, когда PHP передаёт данные функциям XML-обработчиков. Когда XML-обработчик создаётся, устанавливается та же самая целевая кодировка, что и исходная кодировка, но она может быть изменена в любой момент. Целевая кодировка влияет на символьные данные и на имена тэгов и цели инструкций процессинга. Если XML-разборщик находит символы вне диапазона представления исходной кодировки, он возвратит ошибку. Если PHP находит в разбираемом XML-документе символы, которые не могут быть представлены в избранной целевой кодировке, проблемные символы будут "понижены в звании". В настоящее время это означает, что такие символы заменяются знаком вопроса. Некоторые примерыВот примеры скриптов PHP, разбирающих XML-документы. Пример структуры XML-элементовВ первом примере отображается структура стартовых элементов документа с отступом. Пример Отображения XML-тэгов
Пример внешнего экземпляра XMLЭтот пример разъясняет XML-код. Он показывает, как использовать обработчик ссылки на внешний экземпляр для включения и разбора других документов, а также то, как можно обработать PI, и способ определения "trust/доверия" PI, содержащим код. XML-документы, которые могут использоваться для этого примера, находятся ниже этого примера (xmltest.xml и xmltest2.xml.)
Следующий файл включается в xmltest.xml:
| |||||||||||||||||||||||||||||||||||||||||||||||||
|