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

на главную

Жанры

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

Шрифт:

DOMParser parser;

XMLDocument xmldoc, xsldoc;

URL xslURL;

URL xmlURL;

try {

parser = new DOMParser;

parser.setPreserveWhitespace(true);

xmlURL = new URL(args[0]);

parser.parse(xmlURL);

xmldoc = parser.getDocument;

xslURL = new URL(args[1]);

parser.parse(xslURL);

xsldoc = parser.getDocument;

.

.

.

В

этот момент
planets.xml
и
planets.xsl
заключены в объекты
XMLDocument
. Для выполнения преобразования мне необходимы еще объекты
XSLStylesheet
и
XSLProcessor
для таблицы стилей XSLT. Фактическое преобразование XSLT осуществляется методом
processXSL
объекта
parser
, возвращающего фрагмент документа:

public class oraclejava {

 public static void main (String args[]) throws Exception {

DOMParser parser;

.

.

.

xslURL = new URL(args[1]);

parser.parse(xslURL);

xsldoc = parser.getDocument;

XSLStylesheet xslstylesheet = new XSLStylesheet(xsldoc, xslURL);

XSLProcessor processor = new XSLProcessor;

DocumentFragment docfragment =

processor.processXSL(xslstylesheet, xmldoc);

.

.

.

Этот код завершает преобразование. Теперь задача состоит в том, чтобы преобразовать данный фрагмент документа в документ XML, который можно записать на диск, — для чего я и создам новый XML-документ,

newdoc
, и вставлю фрагмент документа в корень нового документа:

import org.w3c.dom.*;

.

.

.

public class oraclejava {

 public static void main (String args[]) throws Exception {

DOMParser parser;

XMLDocument xmldoc, xsldoc, newdoc;

URL xslURL;

URL xmlURL;

try {

.

.

.

DocumentFragment docfragment =

processor processXSL(xslstylesheet, xmldoc);

newdoc = new XMLDocument;

Element rootElement = newdoc.createElement("root");

newdoc.appendChild(rootElement);

rootElement.appendChild(docfragment);

.

.

.

Теперь

осталось только сохранить на диске новый XML-документ с именем, заданным в
args[2]
. В этих целях я использую объект
FileOutputStream
, и вот полный код (листинг 10.9). 

Листинг 10.9. oraclejava.java, взаимодействие процессора XSLT Oracle с Java

import org.w3c.dom.*;

import java.util.*;

import java.io.*;

import java.net.*;

import oracle.xml.parser.v2.*;

public class oraclejava {

 public static void main (String args[]) throws Exception {

DOMParser parser;

XMLDocument xmldoc, xsldoc, newdoc;

URL xslURL;

URL xmlURL;

try {

parser = new DOMParser;

parser.setPreserveWhitespace(true);

xmlURL = new URL(args[0]);

parser.parse(xmlURL);

xmldoc = parser.getDocument;

xslURL = new URL(args[1]);

parser.parse(xslURL);

xsldoc = parser.getDocument;

XSLStylesheet xslstylesheet = new XSLStylesheet(xsldoc, xslURL);

XSLProcessor processor = new XSLProcessor;

DocumentFragment docfragment =

processor.processXSL(xslstylesheet, xmldoc);

newdoc = new XMLDocument;

Element rootElement = newdoc.сreateElement("root");

newdoc.appendChild(rootElement);

rootElement.appendChild(docfragment);

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

newdoc.print(out);

out.close;

} catch (Exception e) {}

 }

}

На этом

oraclejava.java
заканчивается. Чтобы скомпилировать пример, включите в
classpath
путь к разборщику XML процессора XSLT Oracle,
xmlparserv2.jar
:

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

Шесть тайных свиданий мисс Недотроги

Суббота Светлана
Любовные романы:
любовно-фантастические романы
эро литература
7.75
рейтинг книги
Шесть тайных свиданий мисс Недотроги

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Седьмая жена короля

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Седьмая жена короля

Не верь мне

Рам Янка
7. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Не верь мне

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

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

Жандарм

Семин Никита
1. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
4.11
рейтинг книги
Жандарм

Архонт

Прокофьев Роман Юрьевич
5. Стеллар
Фантастика:
боевая фантастика
рпг
7.80
рейтинг книги
Архонт

Волк 7: Лихие 90-е

Киров Никита
7. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк 7: Лихие 90-е

Целитель

Первухин Андрей Евгеньевич
1. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Целитель

Кодекс Охотника. Книга XXIV

Винокуров Юрий
24. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXIV

Менталист. Конфронтация

Еслер Андрей
2. Выиграть у времени
Фантастика:
боевая фантастика
6.90
рейтинг книги
Менталист. Конфронтация

Восход. Солнцев. Книга IX

Скабер Артемий
9. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга IX

Сломанная кукла

Рам Янка
5. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сломанная кукла

Свет во мраке

Михайлов Дем Алексеевич
8. Изгой
Фантастика:
фэнтези
7.30
рейтинг книги
Свет во мраке