загрузка XML файла в сервлете
От: EugenyAL  
Дата: 08.08.07 17:04
Оценка:
Здравствуйте!
У меня есть xml файл на диске в котором есть ссылка на xsl.
В сервлете я читаю этот файл и пишу в response

PrintWriter out = response.getWriter()
response.setContentType("text/xml;charset=windows-1251");
FileReader r=new FileReader ("c:\\tmp\\test_xml.xml);
int c;
while ((c=r.read())!=-1)
out.write(c);
..........

в клиенте я пытаюсь отобразить :
JEditorPane ed=new JEditorPane();
add(ed);
ed.setContentType("html/xml");
ed.SetPage("http://localhost:8080/TestServlet/MyServlet");

Мне нужно чтобы xml отображался в соотвествии со стилем описанным в xsl.
Но эта связка не работает и xml отображается просто в виде дерева.

Вот xml и xsl файлы:


<?xml version="1.0" encoding="WINDOWS-1251"?>
<?xml-stylesheet type='text/xsl' href='2.xsl'?>
<tutorial>
<title>HELLO FROM XML</title>
<author>XML FILE 2.This is test</author>
</tutorial>


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<p> <strong><xsl:value-of select="//title"/> </strong></p>
<p><xsl:value-of select="//author"/></p>
</xsl:template>
</xsl:stylesheet>

Подскажите пожалуйста что не так.

Спасибо!
Re: загрузка XML файла в сервлете
От:  
Дата: 08.08.07 17:37
Оценка: 1 (1)
Hello, EugenyAL!
You wrote on Wed, 08 Aug 2007 17:04:10 GMT:

E> Мне нужно чтобы xml отображался в соотвествии со стилем описанным

E> в xsl.
E> Но эта связка не работает и xml отображается просто в виде дерева.

E> <?xml version="1.0" encoding="WINDOWS-1251"?>

E> <?xml-stylesheet type='text/xsl' href='2.xsl'?>
E> <tutorial>
E> <title>HELLO FROM XML</title>
E> <author>XML FILE 2.This is test</author>
E> </tutorial>

Разумеется она не будет работать. Кто по-вашему будет обрабатывать PI xml-stylesheet?
Нужно явно вызывать XSLT-процессор, запускать преобразование и работать с его результатом.

E> <xsl:stylesheet version="1.0"

E> xmlns:xsl="http://www.w3.org/TR/WD-xsl">

Пипец, еще и WD-XSL. Вы что ли примеры для Internet Explorer 5.0 пытаетесь заставить работать?

WD-XSL — это черновая спецификация языка для преобразований XML, стандартом она так и не стала. Она была реализована в MSXML версии 2.0 и более поздних. Как следствие стала доступна в IE 5.0. Явовские XSLT-процессоры ее нихт ферштейн.

WD-XSL была замененена другой технологией — XSLT, которая имеет основой значительную часть WD-XSL. XSLT-процессоров на Java хватает, самые популярные — Xalan (включен в JRE начиная с версии 1.4) и Saxon (создатель — Макл Кей, автор спецификаций XSLT).
Рекомендую Saxon.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: загрузка XML файла в сервлете
От: EugenyAL  
Дата: 08.08.07 23:47
Оценка:
Здравствуйте, YК, Вы писали:

YК>Hello, EugenyAL!

YК>You wrote on Wed, 08 Aug 2007 17:04:10 GMT:

E>> Мне нужно чтобы xml отображался в соотвествии со стилем описанным

E>> в xsl.
E>> Но эта связка не работает и xml отображается просто в виде дерева.

E>> <?xml version="1.0" encoding="WINDOWS-1251"?>

E>> <?xml-stylesheet type='text/xsl' href='2.xsl'?>
E>> <tutorial>
E>> <title>HELLO FROM XML</title>
E>> <author>XML FILE 2.This is test</author>
E>> </tutorial>

YК>Разумеется она не будет работать. Кто по-вашему будет обрабатывать PI xml-stylesheet?

YК>Нужно явно вызывать XSLT-процессор, запускать преобразование и работать с его результатом.

E>> <xsl:stylesheet version="1.0"

E>> xmlns:xsl="http://www.w3.org/TR/WD-xsl">

YК>Пипец, еще и WD-XSL. Вы что ли примеры для Internet Explorer 5.0 пытаетесь заставить работать?


YК>WD-XSL — это черновая спецификация языка для преобразований XML, стандартом она так и не стала. Она была реализована в MSXML версии 2.0 и более поздних. Как следствие стала доступна в IE 5.0. Явовские XSLT-процессоры ее нихт ферштейн.


YК>WD-XSL была замененена другой технологией — XSLT, которая имеет основой значительную часть WD-XSL. XSLT-процессоров на Java хватает, самые популярные — Xalan (включен в JRE начиная с версии 1.4) и Saxon (создатель — Макл Кей, автор спецификаций XSLT).

YК>Рекомендую Saxon.

Спасибо за консультацию. Я использовал Xalan для преобразование XML в HTML.
У меня все получилось.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.