=> Главная База Знаний Xslt Взаимодействие xt с java


Взаимодействие xt с java

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

Процессор XT также может работать с Java. API XT спроектирован для работы с классами, определенными в Project X TR2 фирмы Sun, которые поддерживают обработку XML. Вам будет необходим файл

xml.jar
фирмы Sun, который можно получить, загрузив Project X TR2. Чтобы получить
xml.jar
, необходимо зарегистрироваться на web-узле разработчиков Sun, http://developer.java.sun.com, что, к счастью, бесплатно, хотя и потребует от вас заполнения изрядного количества форм.

Файл

xml.jar
нужен для класса
com.sun.xml.tree.XmlDocument
. Этот класс поддерживает XML-документы, и я начну свой новый пример,
xtjava.java
, с создания нового объекта
XmlDocument
для исходного документа, таблицы стилей XSLT и результирующего документа:

import java.io.IOException;

import java.io.OutputStream;

import java.io.FileOutputStream;

import org.xml.sax.SAXException;

import com.sun.xml.tree.XmlDocument;

import com.jclark.xsl.dom.Transform;

import com.jclark.xsl.dom.TransformEngine;

import com.jclark.xsl.dom.TransformException;

import com.jclark.xsl.dom.XSLTransformEngine;


class xtjava {

 public static void main(String[] args)

  throws IOException. SAXException, TransformException {

  XmlDocument XMLdoc =

   new XmlDocument().createXmlDocument(args[0]);

  XmlDocument XSLdoc =

   new XmlDocument().createXmlDocument(args[1]);

  XmlDocument newdoc = new XmlDocument();

  .

  .

  .

После этого я создаю объект

XSLTranformationEngine
и вызываю его метод
createTransform
для создания нового объекта
Transform
на основе таблицы стилей
XSLT
:

import java.io.IOException;

.

.

.

class xtjava {

 public static void main(String[] args)

  throws IOException, SAXException, TransformException {

  XmlDocument doc = new XmlDocument();

  XSLTransformEngine transformEngine = new XSLTransformEngine();

  Transform transform = transformEngine.createTransform(XSLdoc);

  .

  .

  .

Затем я могу преобразовать XML-документ в объект результирующего документа следующим способом:

import java.io.IOException;

.

.

.

class xtjava {

 public static void main(String[] args)

  throws IOException, SAXException, TransformException {

  XmlDocument XMLdoc =

   new XmlDocument().createXmlDocument(args[0]);

  XmlDocument XSLdoc =

   new XmlDocument().createXmlDocument(args[1]);

  XmlDocument newdoc = new XmlDocument();

  XSLTransformEngine transformEngine = new XSLTransformEngine();

  Transform transform = transformEngine.createTransform(XSLdoc);

  transform transform(XMLdoc, newdoc);

  .

  .

  .

Так завершается преобразование. Осталось только записать результирующий документ,

newdoc
, на диск, что можно сделать при помощи объекта
FileOutputStream
(листинг 10.10).

Листинг 10.10. xtjava.java, взаимодействие XT с Java

import java.io.IOException;

import java.io.OutputStream;

import java.io.FileOutputStream;

import org.xml.sax.SAXException;

import com.sun.xml.tree.XmlDocument;

import com.jclark.xsl.dom.Transform;

import com.jclark.xsl.dom.Transform Engine;

import com.jclark.xsl.dom.TransformException;

import com.jclark.xsl.dom.XSLTransformEngine;


class xtjava {

 public static void main(String[] args)

  throws IOException, SAXException, TransformException {

  XmlDocument XMLdoc =

   new XmlDocument().createXmlDocument(args[0]);

  XmlDocument XSLdoc =

   new XmlDocument().createXmlDocument(args[1]);

  XmlDocument newdoc = new XmlDocument();

  XSLTransformEngine transformEngine = new XSLTransformEngine();

  Transform transform = transformEngine.createTransform(XSLdoc);

  transform.transform(XMLdoc, newdoc);

  OutputStream out = new FileOutputStream(args[2]);

  newdoc.write(out);

  out.close();

 }

}

Чтобы запустить пример, включите

xt.jar
и
xml.jar
в
classpath
:

C:\>set classpath=.;d:\xt\xt.jar;xml.jar

Скомпилируйте теперь

xtjava.java
компилятором Java
javac
и запустите на выполнение следующим образом, передав URL документов XML и XSL (можно передать и URL файлов, как было показано ранее):

C:\>java xtjava http://www.starpowder.com/planets.xml http://www.starpowder.com/planets.xsl planets.html

Теперь все сделано.