Чтение онлайн

на главную - закладки

Жанры

C++. Сборник рецептов

Когсуэлл Джефф

Шрифт:

<th>Veterinarian</th>

<th>Trainer</th>

</tr>

<xsl:apply-templates match="animal">

</xsl:apply-templates>

</table>

</body>

</html>

 </xsl:template>

 <xsl:template match="animal">

<tr>

<td><xsl:value-of select="name"/></td>

<td><xsl:value-of select="species"/></td>

<td><xsl:value-of select="dateOfBirth"/></td>

<xsl:apply-templates select="veterinarian"/>

<xsl:apply-templates select="trainer"/>

</tr>

 </xsl:template>

 <xsl:template match="veterinarian|trainer">

<td>

<table>

<tr>

<th>name:</th>

<td>

<xsl:value-of select="attribute::name"/>

</td>

</tr>

<tr>

<th>phone:</th>

<td><xsl:value of select="attribute::phone"/></td>

</tr>

</table>

</td>

 </xsl:template>

</xsl:stylesheet>

Пример 14.20.

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

#include <exception>

#include <iostream> // cout

#include <xalanc/Include/PlatformDefinitions.hpp>

#include <xalanc/XalanTransformer/XalanTransformer.hpp>

#include <xalanc/XSLT/XSLTInputSource.hpp>

#include <xalanc/XSLT/XSLTResultTarget.hpp>

#include <xercesc/util/PlatformUtils.hpp>

#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

<html>

 <head>

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

<title>Feldman Family Circus Animals</title>

 </head>

 <body>

<h1>Feldman Family Circus Animals</h1>

<table cellpadding="3" border="1">

<tr>

<th>Name</th>

<th>Species</th>

<th>Date of Birth</th>

<th>Veterinarian</th>

Поделиться:
Популярные книги

Душелов. Том 3

Faded Emory
3. Внутренние демоны
Фантастика:
альтернативная история
аниме
фэнтези
ранобэ
хентай
5.00
рейтинг книги
Душелов. Том 3

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Кодекс Крови. Книга VII

Борзых М.
7. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VII

Архил...? 4

Кожевников Павел
4. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
5.50
рейтинг книги
Архил...? 4

Чехов

Гоблин (MeXXanik)
1. Адвокат Чехов
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Чехов

Переписка 1826-1837

Пушкин Александр Сергеевич
Документальная литература:
публицистика
5.00
рейтинг книги
Переписка 1826-1837

Предатель. Цена ошибки

Кучер Ая
Измена
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Предатель. Цена ошибки

Газлайтер. Том 3

Володин Григорий
3. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 3

Родословная. Том 2

Ткачев Андрей Юрьевич
2. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 2

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье

Цветы сливы в золотой вазе, или Цзинь, Пин, Мэй

Ланьлинский насмешник
Старинная литература:
древневосточная литература
7.00
рейтинг книги
Цветы сливы в золотой вазе, или Цзинь, Пин, Мэй

Охота на разведенку

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
6.76
рейтинг книги
Охота на разведенку