Вход/Регистрация
XSLT
вернуться

Холзнер Стивен

Шрифт:

.

.

Затем необходимо создать объект

Templates
на основе таблицы стилей XSL, которую мы хотим применить, хранимой в
args[1]
. Это можно сделать при помощи класса
InputSource
:

import java.io.*;

.

.

.

public class saxonjava {

 public static void main(String args[])

throws ProcessorException, ProcessorFactoryException,

TransformException, SAXException, IOException {

Processor processor = Processor.newInstance("xslt");

Templates templates =

processor.process(new InputSource(args[1]));

.

.

.

 }

}

При помощи нового объекта

Templates
можно создать объект
Transformer
, который в действительности делает работу:

import java.io.*;

.

.

.

public class saxonjava {

 public static void main(String args[])

throws ProcessorException, ProcessorFactoryException,

TransformException, SAXException, IOException {

Processor processor = Processor.newInstance("xslt");

Templates templates =

processor.process(new InputSource(args[1]));

Transformer transformer = templates.newTransformer;

.

.

.

 }

}

Наконец, чтобы осуществить XSLT-преобразование, нужно вызвать метод

transform
объекта
transformer
, записывая результат в выходной документ при помощи объекта
FileWriter
(листинг 10.8).

Листинг 10.8. saxonjava.java, взаимодействие Saxon с Java

import java.io.*;

import org.xml.sax.*;

import org.w3c.dom.*;

import com.icl.saxon.trax.*;

public class saxonjava {

 public static void main(String args[])

throws ProcessorException, ProcessorFactoryException,

TransformException, SAXException, IOException {

Processor processor = Processor.newInstance("xslt");

Templates templates =

processor.process(new InputSource(args[1]));

Transformer transformer = templates.newTransformer;

transformer.transform(new InputSource(args[0]),

new Result(new FileWriter(args[2])));

 }

}

Чтобы скомпилировать и использовать новый класс

saxonjava
, нужно установить
classpath
так, чтобы переменная включала путь к
saxon.jar
:

С:\>set сlasspath=.;с:\saxon\saxon.jar

Затем при помощи компилятора Java,

javac
, создается
saxonjava.class
.

Как и многие использующие API процессоры XSLT, Saxon ожидает, что ему будут переданы URL документов, с которыми вы хотите работать, — что я и делаю на следующем шаге:

C:\>java saxonjavahttp://www.starpowder.com/planets.xsl planets.html

Таким образом, создается

planets.html
, как и раньше. Заметьте, что если документы расположены локально, можно использовать URL файла. Например, в Windows, если документ XML расположен в
c:\XSL\saxonjava\planets.xml
, а документ XSL в
c:\XSL\saxonjava\planets.xsl
, можно выполнить такую командную строку:

C:\>java saxonjava file:///XSL/saxonjava/planets.xml file:///XSL/saxonjava/planets.xsl planets.html

ПРЕОБРАЗОВАНИЕ ИМЕН ФАЙЛОВ В URL

Если вам больше нравится писать в командной строке имена файлов, а не URL, имена можно преобразовывать в URL в коде. Для этого необходимо передать полный путь к файлу в класс Java URL, а путь можно получить методом getAbsolutePath класса File: File file = new File(filename); String fullpath = file.getAbsolutePath;.

  • Читать дальше
  • 1
  • ...
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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