XSLT
Шрифт:
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);
.
.
.
Теперь
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
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 5
5. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 2
2. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Встреча
7. Петя и Валерон
Фантастика:
рпг
аниме
попаданцы
5.00
рейтинг книги
Виктор Глухов агент Ада. Компиляция. Книги 1-15
Виктор Глухов агент Ада
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 2
2. Отпуск
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 3
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Я еще не князь. Книга XIV
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
За Горизонтом
8. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Бастард Императора. Том 6
6. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Хозяин Теней 5
5. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Газлайтер. Том 39
39. История Телепата
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
попаданцы
5.00
рейтинг книги
Князь Андер Арес 2
2. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Недотепа
Фантастика:
фэнтези
5.80