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

Тут можно читать онлайн Стивен Холзнер - XSLT - бесплатно полную версию книги (целиком) без сокращений. Жанр: Интернет, издательство Питер, год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Холзнер - XSLT краткое содержание

XSLT - описание и краткое содержание, автор Стивен Холзнер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.

Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.

Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике

XSLT - читать онлайн бесплатно полную версию (весь текст целиком)

XSLT - читать книгу онлайн бесплатно, автор Стивен Холзнер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

C:\>set classpath=.;c:\xalan\xalan.jar;c:\xalan\xerces.jar

Затем скомпилируйте xalanjava.javaкомпилятором с Java, javac:

C:\>javac xalanjava.java

Здесь считается, что путь к javac.exeпрописан, и его можно сразу активизировать из командной строки. (Как правило, компилятор Java javac.exe находится в каталоге Java bin — поэтому если путь к нему не задан, к нему можно обратиться, например, так: C:\>c:\jdk1.3\bin\javac xalanjava.java.) Компилятор Java создаст файл xalanjava.class, при помощи которого производится преобразование:

C:\>java xalanjava planets.xml planets.xsl planets.html

При этом из файлов planets.xmlи planets.xslбудет создан файл planets.html— здесь я его создал при помощи своего собственного класса Java.

РАБОТА С ПАКЕТОМ JAXP ФИРМЫ SUN ДЛЯ XSLT

Фирма Sun, создатель Java, обладает пакетом Java для обработки XML, JAXP, который можно загрузить с http://java.sun.com/xml. JAXP способен также осуществлять XSLT-преобразования. Но я не буду отдельно рассматривать JAXP в текущей главе, поскольку этот пакет (по крайней мере, сейчас) для всех своих преобразований использует Xalan, поставляемый в xalan.jar. Значит, предыдущий пример, листинг 10.7, без всяких изменений можно использовать с пакетом JAXP.

Взаимодействие Saxon с Java

Процессор Saxon также определяет API для работы с Java, но, конечно, в деталях этот прикладной интерфейс отличается от API Xalan. Для демонстрации создания преобразований при помощи Saxon API версии 6.0.2 я создам новый класс Java saxonjava. Начать нужно с создания нового объекта XSLTProcessor, вызвав метод newInstanceкласса Processorв файле saxonjava.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на основе таблицы стилей 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 saxonjava http://www.starpowder.com/planets.xml http://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();.

В этом примере мы работали с Saxon версии 6.0.2, о котором на web-узле Saxon говорится как о вполне надежной версии, но на момент написания книги появилась новая, полностью не протестированная версия Saxon 6.2.2. (Не существовало версии Saxon 6.1.x.) В последней версии Saxon, кажется, собирается вернуться к той же модели API, которую использует Xalan, и код, работоспособный в версии 6.0.2, не будет работать в версии 6.2.2 (сюрприз!). Ниже приведен код saxonjava.javaдля версии 6.2.2 — проверьте, что при работе с этим кодом вы включили в classpathновую версию saxon.jar, и обратите внимание на то, что при его выполнении вам нужно передавать не URL файлов, а только их имена. Этот код идентичен показанному ранее xalanjava.java, за исключением имени класса, saxonjava:

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.stream.StreamSource;

import javax.xml.transform.stream.StreamResult;

import javax.xml.transform.TransformerException;

import javax.xml.transform.TransformerConfigurationException;

import java.io.FileOutputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

public class saxonjava {

public static void main(String[] args)

throws TransformerException, TransformerConfigurationException,

FileNotFoundException, IOException {

TransformerFactory tFactory = TransformerFactory.newInstance();

Transformer transformer =

tFactory.newTransformer(new StreamSource(args[1]));

transformer transform(new StreamSource(args[0]),

new StreamResult(new FileOutputStream(args[2])));

}

}

Взаимодействие процессора XSLT Oracle с Java

Несколько больше усилий потребуется для осуществления XSLT-преобразования при помощи API процессора XSLT фирмы Oracle. Новый пример, oraclejava.java, продемонстрирует работу с этим API.

В oraclejava.javaв первую очередь необходимо считывать требуемые документы при помощи объекта DOMParser:

import org.w3c.dom.*;

import java.util.*;

import java.io.*;

import java.net.*;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Холзнер читать все книги автора по порядку

Стивен Холзнер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




XSLT отзывы


Отзывы читателей о книге XSLT, автор: Стивен Холзнер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x