Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вместо русских букв - их сущности, после xslt-трансформации. Как побороть? 
:(
    Опции темы
Barvetal
Дата 28.8.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



Есть xml-файл. Он содержит русские буквы. После преобразование в html стандартным парсером из jdk1.5 они превращаются в сущности. Как сделать, чтобы они были нормальными русскими буквами в кодировке Windows-1251?

test.xml:
Код

<?xml version="1.0" encoding="Windows-1251" ?>
<test>тест</test>


test.xsl:
Код

<?xml version="1.0" encoding="Windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Windows-1251" media-type="text/html; charset=windows-1251"/>
</xsl:stylesheet>


test.html (только уберите пробелы):
Код

& #1090;& #1077;& #1089;& #1090;


SimpleTransform.java:
Код

package net.mycompany.test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringWriter;

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public class SimpleTransform {

    final static String XML_DOC = "test.xml";

    final static String XSL_DOC = "test.xsl";


    final static String HTML_DOC = "test.html";

    public static void main(String[] args) throws TransformerException,
            TransformerConfigurationException, FileNotFoundException, IOException {

        TransformerFactory tFactory = TransformerFactory.newInstance();

        Transformer transformer = tFactory.newTransformer(new StreamSource(XSL_DOC));

        StringWriter writer = new StringWriter();
        StreamResult result = new StreamResult(writer);

        transformer.transform(new StreamSource(XML_DOC), new StreamResult(new FileOutputStream(HTML_DOC)));
    }
}

PM MAIL   Вверх
Sardar
Дата 28.8.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Попробуй CP1251. А вообще странно это...


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
LSD
Дата 29.8.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 5
Всего: 538



Есть вот такой, немного извращенный, способ:
Код
private final static String XML_DOC = "test.xml";
private final static String XSL_DOC = "test.xsl";
private final static String HTML_DOC = "test.html";

public static void main(String[] args) throws Exception
{
  TransformerFactory tFactory = TransformerFactory.newInstance();
  Transformer transformer = tFactory.newTransformer(new StreamSource(XSL_DOC));
  transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-16");
  transformer.transform(new StreamSource(XML_DOC), new StreamResult(new OutputStreamWriter(new FileOutputStream(HTML_DOC), "windows-1251")));
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Barvetal
Дата 6.9.2006, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



2 LSD: неа, все по прежнему.. Вместо русских символов - их сущности... Есть ли еще какие-то возможности?
PM MAIL   Вверх
LSD
Дата 6.9.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 5
Всего: 538



У меня тест нормально работает.
У тебя какая ОС и региональные установки?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Barvetal
Дата 7.9.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



Цитата(LSD @ 6.9.2006,  14:14)
У меня тест нормально работает.
У тебя какая ОС и региональные установки?

WinXP английская, региональные установки - везде Россия
PM MAIL   Вверх
Barvetal
Дата 7.9.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



Цитата(LSD @ 6.9.2006,  14:14)
У меня тест нормально работает.
У тебя какая ОС и региональные установки?

Слушай, а ты какой парсер используешь?
Если saxon, то как его подключить, чтобы брался он, а не стандартный?
PM MAIL   Вверх
LSD
Дата 7.9.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

Репутация: 5
Всего: 538



У меня тоже WinXP eng с русскими региональными установками, парсер я использую стандартный из JDK 1.5.0_06.
Даже и не знаю, почему у тебя система по другому себя ведет.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.3845 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.