}
xslt_free($xh);
exit;
?>
Функции также можно передать имена файлов XML, XSL и
результата во втором, третьем и четвертом аргументе соответственно, тогда данные будут считываться из файлов или записываться в файлы. Если для результата указано имя файла, то переменная примет булево значе
ние, указывающее на успешность операции.
Резюме
В этой главе мы рассмотрели три различных способа прочесть довольно простой файл XML и представить его броузеру в виде таблицы HTML. Мы продемонстрировали применение трех различных API XML для получения одинакового итогового HTML. Мы также рассмотрели вывод XML с помощью DOM. Были кратко рассмотрены три разных API. Два основных API — SAX и DOM — располагают более обширной функциональностью, чем показано в этой главе, преследующей цель лишь заложить основу для работы с любым API XML.
А именно были рассмотрены:
♦ Основы XML, SML и XPath
♦ XML как хранилище данных и программное взаимодействие с ним
♦ API PHP (SAX, DOM и PRAX), позволяющие работать с документом XML
♦ Чтение файла XML с помощью SAX
♦ Чтение и запись файла XML с помощью DOM
♦ Чтение файла XML с помощью PRAX
Наконец, чтобы показать, что код действительно работает, приведем результат его выполнения (рис. 21.10):
♦ Поддержка Sablotron XSL в РНР
Как можно видеть из приведенных в этой главе примеров, применять РНР для обработки XML несложно. При необходимости использовать другие функции API задействовать их будет относительно нетрудно.
Кто-нибудь всегда задаст сложный вопрос: «Какой способ работы с XML в РНР является наилучшим?» Ответить на него трудно. Написав эту главу и сопоставив все различные примеры кода, автор отдает предпочтение подходу на основе XSL и Sablotron. Конечно, с их помощью нельзя выводить XML. Вывод XML проще всего обеспечить с помощью DOM, но более надежно написать для этого (или найти в Интернете) специальный класс РНР. Следите за DOM; когда будут исправлены все ошибки, это может оказаться самым удачным способом работы с XML.
22
Интернационализация
Интернет есть почти в любой стране мира. Несмотря на такое распространение, когда возникает необходимость в наборах идеографических символов из других языков (не или русского), оказывается весьма не
просто пробраться через джунгли языков, наборов символов, шрифтов и специальных библиотек, чтобы создать программное обеспечение, дающее пользователю возможность работать с избранным им языком. Тут нам и понадобится интернационализация.