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

на главную - закладки

Жанры

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

Шрифт:

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
:

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

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Древесный маг Орловского княжества 5

Павлов Игорь Васильевич
5. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 5

Сильнейший Столп Империи. Книга 2

Ермоленков Алексей
2. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 2

Встреча

Видум Инди
7. Петя и Валерон
Фантастика:
рпг
аниме
попаданцы
5.00
рейтинг книги
Встреча

Виктор Глухов агент Ада. Компиляция. Книги 1-15

Сухинин Владимир Александрович
Виктор Глухов агент Ада
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Виктор Глухов агент Ада. Компиляция. Книги 1-15

Третий. Том 2

INDIGO
2. Отпуск
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 2

На границе империй. Том 10. Часть 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 3

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

За Горизонтом

Вайс Александр
8. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
За Горизонтом

Бастард Императора. Том 6

Орлов Андрей Юрьевич
6. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 6

Хозяин Теней 5

Петров Максим Николаевич
5. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Теней 5

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

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

Князь Андер Арес 2

Грехов Тимофей
2. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Князь Андер Арес 2

Недотепа

Лукьяненко Сергей Васильевич
Фантастика:
фэнтези
5.80
рейтинг книги
Недотепа