XSLT - [131]
>planets.xml
и >planets.xsl
расположены в том же каталоге, что и сценарий JSP) таким образом:><%@ page errorPage="error.jsp" language="java"
> contentType="text/html" import="org.apache.xalan.xslt.*;java.iо.*" %>
><%
> try {
> XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
> processor.process(new XSLTInputSource("planets.xml"),
> new XSLTInputSource("planets.xsl"),
> new XSLTResultTarget("planets.html"));
> } catch(Exception e) {}
> .
> .
> .
Теперь все, что нужно сделать, — это открыть документ и отправить его обратно клиенту (листинг 10.13).
><%@ page errorPage="error.jsp" language="java"
> contentType="text/html" import="org.apache.xalan.xslt.*;java.iо.*" %>
><%
> try {
> XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
> processor.process(new XSLTInputSource("planets.xml"),
> new XSLTInputSource("planets.xsl"),
> new XSLTResultTarget("planets.html"));
> } catch(Exception e) {}
> FileReader filereader = new FileReader("planets.html");
> BufferedReader bufferedreader = new BufferedReader(filereader);
> String instring;
> while((instring = bufferedreader.readLine()) != null) { %>
> <%= instring %>
> <% }
> filereader.close();
> pw.close();
>%>
Теперь все готово. Результаты применения этого сценария JSP показаны на рис. 10.6.
Рис. 10.6. Применение XSLT с JSP
Применение XSLT с сервлетами Java
Выполнять XSLT-преобразования на сервере можно также при помощи сервлетов (servlet) Java. Хотя многие процессоры XSLT предоставляют свои собственные версии сервлетов, я считаю, что гораздо проще самостоятельно выполнить преобразование при помощи Xalan или другого процессора XSLT и затем обработать результирующий документ и отправить его обратно клиенту.
В следующем примере я при помощи Xalan преобразую >planets.xml
во временный файл >planets.html
, применяя >planets.xsl
в сервлете:
>import java.net.*;
>import java.sql.*;
>import java.awt.*;
>import java.awt.event.*;
>import java.io.*;
>import javax.servlet.*;
>import org.apache.xalan.xslt.*;
>public class xslservlet extends GenericServlet {
> public void service(ServletRequest request, ServletResponse response)
> throws ServletException, IOException {
> try {
> XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
> processor.process(new XSLTInputSource("planets.xml"),
> new XSLTInputSource("planets.xsl"),
> new XSLTResultTarget("planets.html"));
> } catch(Exception e) {}
> .
> .
> .
Все, что осталось, — отправить HTML-документ обратно клиенту (листинг 10.14).
>import java.net.*;
>import java.sql.*;
>import java.awt.*;
>import java.awt.event.*;
>import java.io.*;
>import javax.servlet.*;
>import org.apache.xalan.xslt.*;
>public class xslservlet extends GenericServlet {
> public void service(ServletRequest request, ServletResponse response)
> throws ServletException.IOException {
> response.setContentType("text/html");
> PrintWriter pw = response.getWriter();
> try {
> XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
> processor.process(new XSLTInputSource("planets.xml"),
> new XSLTInputSource("planets.xsl"),
> new XSLTResultTarget("planets.html"));
> } catch(Exception e) {}
> FileReader filereader = new FileReader("planets.html");
> BufferedReader bufferedreader = new BufferedReader(filereader);
> String instring;
> while((instring = bufferedreader.readLine()) != null) {
> pw.println(instring);
> }
> filereader.close();
> pw.close();
> }
>}
Теперь все сделано, результат показан на рис. 10.7 — HTML-документ, переданный из сервлета.
Рис. 10.7. Применение XSLT с сервлетами Java
На этом мы заканчиваем изучение работы с API процессоров XSLT в программном коде. Мы рассмотрели весьма объемный материал: как взаимодействовать с API процессоров XSLT из JavaScript и Java для процессоров MSXML, Xalan, XT, Saxon и Oracle, а также примеры выполнения XSLT-преобразований на web-серверах при помощи ASP, JSP и сервлетов Java.
Глава 11
Применение XSLT для создания документов XSL-FO
Мы уже рассмотрели XSLT-преобразования из XML в XML, HTML, XHTML, RTF, простой текст, JavaScript и даже в реляционные базы данных. В этой и следующей главах вы познакомитесь с новым преобразованием, для которого и создавались XSLT: преобразование XML в документы, которые используют форматирующие объекты, XSL (документы XSL-FO).
Такое преобразование являлось первоочередной задачей XSLT. Как вы знаете, XSLT вырос из спецификации XSL для упрощения работы с форматирующими объектами (formatting objects). Имейте в виду, что XSL-FO гораздо объемнее XSLT — здесь я смогу представить только введение в предмет.
Форматирование XSL
Как обсуждалось в главе 1, XSLT и XSL-FO составляют спецификацию XSL. В данный момент версия 1.0 этой спецификации обладает статусом рекомендации-кандидата, с последней версией вы сможете познакомиться на http://www.w3.org/TR/xsl.
Форматирующая часть XSL, XSL-FO, позволяет устанавливать точное форматирование для всего документа, вплоть до каждого миллиметра. Например, вы можете выбрать шрифт, его размер, расположение текста на странице, цвет текста, режим подчеркивания и т.д. Работа с XSL-FO во многом похожа на создание документов RTF, но с некоторыми дополнениями: например, в XSL-FO можно создавать ссылки для навигации по документам.
Книга посвящена рассмотрению всей совокупности проблем, связанных с созданием, воспроизведением на компьютере и практическим использованием электронных и мультимедийных изданий. В частности, показано место этих изданий в современной медиа-индустрии. Рассмотрено использование различных HTML-редакторов и специализированных программных средств создания электронных и мультимедийных изданий (MS FrontPage, Macromedia Director, DreamWeaver и Flash, а также 3ds max). В книгу также вошли разделы, связанные с публикацией и хранением электронных изданий с помощью баз данных, а также семантическим анализом, индексацией и организацией поиска и долговременного хранения электронных документов.
Превратится ли всемирная паутина в «традиционное СМИ», содержание которого строго контролируется в интересах максимизации прибыли? В чьих руках сейчас находится Рубильник интернет-истории и, по сути, — развития общества? Исследуя развитие телефонии, радио, кино и телевидения, автор показывает, как эти индустрии прошли путь от хобби — к крупному бизнесу, от открытости и гибкости — к закрытой и жесткой системе. Какое будущее ожидает всемирную Сеть?Пролить свет на прошлое, чтобы предвидеть будущее — главная задача этой книги.Эта книга для тех, кто считает интернет не просто средством общения, но и инструментом познания мира, способом самовыражения.
Чем полезен Интернет пожилому человеку? Прежде всего, неограниченными возможностями общения. Вы можете вести виртуальный дневник или общаться с друзьями в социальных сетях, делиться советами на форумах или переписываться с родственниками, живущими за рубежом, находить старых друзей и заводить новых.Книга поможет вам ориентироваться в мире социальных сетей и интерактивных сервисов, научит вас работать с ними и использовать все те возможности, которые они предоставляют. Материал книги изложен в доступной форме, что облегчает его восприятие, а различные способы выполнения тех или иных действий дадут вам возможность выбрать наиболее удобный способ именно для вас.
Автор предлагает бесплатную, проверенную на практике, супернадежную и эффективную комплексную защиту от вирусов, шпионских программ, вторжения любопытных хакеров — любых попыток несанкционированного вторжения в ваш компьютер.Пользуясь советами автора, вы сможете не только выстроить надежную систему безопасности, но и контролировать те сайты, которые посещают ваши дети, а также без проблем восстановить операционную систему после любого сбоя и даже полного обрушения. Книга станет настольным пособием и у продвинутых пользователей, и у чайников благодаря простому и краткому изложению материала с подробными иллюстрациями каждого шага.
Рассказывается о ведущем поисковом ресурсе российской части Интернета — Яндексе. Описаны его сервисы для поиска документов и новостей, блогов и адресов, товаров и музыкальных произведений. Рассмотрены почтовый сервис и сервис для создания и размещения сайтов на Народ. ру. Читатель узнает о том, что такое "электронные деньги" и как с их помощью оплатить товар. Большое внимание уделяется общедоступным поисковым программам, которые Яндекс предлагает своим посетителям для поиска информации не только на сайтах, но и на своем компьютере.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.
Книга "Изучаем Python" - это ускоренный курс, который позволит вам сэкономить время и сразу начать писать работоспособные программы (игры, визуализации данных, веб-приложения и многое другое). Хотите стать программистом? В первой части книги вам предстоит узнать о базовых принципах программирования, познакомиться со списками, словарями, классами и циклами, вы научитесь создавать программы и тестировать код. Во второй части книги вы начнете использовать знания на практике, работая над тремя крупными проектами: создадите собственную "стрелялку" с нарастающей сложностью уровней, займетесь работой с большими наборами данных и освоите их визуализацию, и, наконец, создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации. Если вы решились разобраться в том что такое программирование, не нужно ждать.
Алгоритмы - это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.