Аргерих Л. О языке РНР. Часть 5. Страница 34


}

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

Интернационализация

Интернет есть почти в любой стране мира. Несмотря на такое распростране­ние, когда возникает необходимость в наборах идеографических символов из других языков (не или русского), оказывается весьма не­

просто пробраться через джунгли языков, наборов символов, шрифтов и спе­циальных библиотек, чтобы создать программное обеспечение, дающее пользователю возможность работать с избранным им языком. Тут нам и по­надобится интернационализация.