Использование класса XalanTransformer

We use cookies. Read the Privacy and Cookie Policy

Использование класса XalanTransformer

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

Листинг 9.2. Типовой сценарий использования Xalan

// Инициализируем Xerces

XMLPlatformUtils::Initialize();

// Инициализируем класс XalanTransformer

XalanTransformer::initialize();

// Создаем экземпляр класса XalanTransformer

XalanTransformer theXalanTransformer;

...

// Выполняем преобразование

theXalanTransformer.transform( ... );

...

// Освобождаем XalanTransformer

XalanTransformer::terminate();

// Освобождаем Xerces

XMLPlatformUtils::Terminate();

В соответствии с этим сценарием наша программа будет выглядеть следующим образом:

#include "StdAfx.h"

#include "util/PlatformUtils.hpp"

#include "XalanTransformer/XalanTransformer.hpp"

#include "strstream"

int main(int argc, const char* argv[]) {

 using std::cerr;

 // Инициализируем Xerces

 XMLPlatformUtils::Initialize();

 // Инициализируем класс XalanTransformer

 XalanTransformer::initialize();

 // Создаем экземпляр класса XalanTransformer

 XalanTransformer theXalanTransformer;

 // Выполняем преобразование

 int theResult = theXalanTransformer.transform("source.xml",

  "stylesheet.xsl", "document.out");

 // В случае, если произошла ошибка, выводим, информацию о ней

 if (theResult != 0) {

  cerr << "XalanError: " << theXalanTransformer.getLastError();

 }

 // Освобождаем XalanTransformer

 XalanTransformer::terminate();

 // Освобождаем Xerces

 XMLPlatformUtils::Terminate();

 return theResult;

}