C++. Сборник рецептов - [195]

Шрифт
Интервал

>

>

> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


>  

>    Feldman Family Circus Animals

>  

>  

>   

Feldman Family Circus Animals

>    

>     

>      

>      

>      

>      

>      

>     

>     

>     

>   

NameSpeciesDate of BirthVeterinarianTrainer

>  


>  

>   

>  

>  

>   

>  

>  


>  

>   

>    

>    

>   

>   

>    

>    

>   

>  

name:

>     

>    

phone:

>

Пример 14.20. Применение таблицы стилей animals.xsl для файла animals.xml с использованием библиотеки Xalan

>#include

>#include // cout

>#include

>#include

>#include

>#include

>#include

>#include "xerces_strings.hpp" // Пример 14.4


>using namespace std;

>using namespace xercesc;

>using namespace xalanc;


>// Утилита RAII, которая инициализирует парсер и освобождает ресурсы

>// при выходе из области видимости

>struct XalanInitializer {

> XalanInitializer() {

>  XMLPlatformUtils::Initialize();

>  XalanTransformer::initialize();

> }

> ~XalanInitializer() {

>  XalanTransformer::terminate();

>  XMLPlatformUtils::Terminate();

> }

>};


>int main() {

> try {

>  XalanInitializer init; // Инициализировать Xalan.

>  XalanTransformer xslt; // Конвертор XSLT.

>  XSLTInputSource xml("animals.xml"); // Документ XML из

>                                      // примера 14.1

>  XSLTInputSource xsl("animals.xsl"); // Таблица стилей из

>                                      // примера 14.19.

>  XSLTResultTarget html("animals.html"); // Результат выполнения xslt.

>  // Выполнить преобразование.

>  if (xslt.transform(xml, xsl, html) != 0) {

>   cout << "xml error: " << xslt.getLastError() << "\n";

>  }

> } catch (const XMLException& e) {

>  cout << "xml error " << toNative(e.getMessage()) << "\n";

>  return EXIT_FAILURE;

> } catch (const exception& e) {

>  cout << e.what() << "\n";

>  return EXIT_FAILURE;

> }

>}

Пример 14.21. Документ HTML, сгенерированный программой из примера 14.20

>

>  <МЕТА http-equiv="Content Type" content="text/html; charset=UTF-8">

Feldman Family Circus Animals

Feldman Family Circus Animals

>  

>   

>   

>   

>   

>   

>  

>  

>   

>   

>   

>   

>   

>  

>  

>   

>   

>   

>   

>   

>  

>  

>   

>   

>   

>   

>   

>  

NameSpeciesDate of BirthVeterinarianTrainer
Herbyelephant1992-04-23

>    

>     

>     

>    

name:Dr. Hal Brown
phone:(801)595-9627

>   

>    

>     

>     

>    

name:Bob Fisk
phone:(801)881-2260

>   

Sheldonparrot1998-09-30

>    

>     

>     

>    

name:Dr. Kevin Wilson
phone:(801)466-6498

>   

>    

>     

>      

>    

name:Eli Wendel
phone:(801)929-2506

>   

Dippypenguin2001-06-08

>    

>     

>     

>    

name:Dr. Barbara Swayne
phone:(801)459-7746

>   

>    

>     

>     

>    

name:Ben Waxman
phone:(801)882-3549

>   

>

Обсуждение

XSL-преобразование (стандарт XSLT) представляет собой язык преобразования документов XML в другие документы XML. XSLT является одним из элементов семейства спецификаций расширяемых языков описания таблиц стилей (Extensible Stylesheet Language — XSL), который обеспечивает базовые средства для визуального представления документов XML Однако XSLT полезен не только при форматировании; например, он используется веб-серверами при генерации HTML-документов «на лету» и такими системами генерации документов, как DocBook.

Преобразования XSLT представляются в виде документов XML, называемых таблицами стилей (stylesheets). Таблица стилей используется для обработки исходного документа и формирования выходного документа (result document)


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.