Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Снова о кодировках XML->HTML / 10 сообщений из 10, страница 1 из 1
13.11.2008, 15:49
    #35652156
Smr_guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
Ситуация: над преобразовать xml в html.

Сделал соответствующий xsl файл в котором прописал <xsl:output method="html" encoding="windows-1251" indent="yes"/>, в заголовке исходного xml написано
<?xml version="1.0" encoding="windows-1251"?> тем не менее, процессор
методично игнорирует кодировку и в выходном html получаю <META
http-equiv="Content-Type" content="text/html; charset=UTF-16">.

Трансформирую DOM'ом:

Set xmlTree = CreateObject("Msxml2.DOMDocument")
xmlTree.async = false
xmlTree.load(xmlFName)

Set xsltTree = CreateObject("Msxml2.DOMDocument")
xsltTree.async = false
xsltTree.load(xsltFName)

WriteToFile htmlFName, xmlTree.transformNode(xsltTree)

Буду благодарен, за прояснение ситуации.
...
Рейтинг: 0 / 0
13.11.2008, 16:26
    #35652300
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
это документированное поведение.
...
Рейтинг: 0 / 0
13.11.2008, 16:33
    #35652340
Smr_guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
Ок, поставлю вопрос иначе: что нужно сделать что бы в выходном html документе было бы <META http-equiv="Content-Type" content="text/html; charset=windows-1251"> а не <META http-equiv="Content-Type" content="text/html; charset=UTF-16">?
...
Рейтинг: 0 / 0
14.11.2008, 00:11
    #35653186
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
Так и явно пропишите в XSL нужный <meta>

С уважением, Vasilisk
...
Рейтинг: 0 / 0
14.11.2008, 09:13
    #35653400
Smr_guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
Пробовал,
Код: plaintext
1.
2.
3.
4.
5.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html" encoding="windows-1251" indent="yes"/>	
		<xsl:template match="/">
			<html>
				<head>
					<META http-equiv="Content-Type" content="text/html; charset=windows-1251"/>

не помогает, тогда в выходном файле получаю следующее:
Код: plaintext
1.
2.
3.
<html>
	<head>
		<META http-equiv="Content-Type" content="text/html; charset=UTF-16">
		<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
Браузер при таком раскладе подцепляет UTF-16, может проблема в msxml?
...
Рейтинг: 0 / 0
14.11.2008, 12:31
    #35654055
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
лично я делаю method="xml", пишу meta вручную, трансформирую в документ через XSLProcessor, сохраняю через save.
...
Рейтинг: 0 / 0
14.11.2008, 12:33
    #35654065
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
хотя для xhtml1.1 meta вроде необязательно прописывать.
...
Рейтинг: 0 / 0
15.11.2008, 00:51
    #35655692
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
Немного ввел в заблуждение, нужно не <meta> прописать, а <xsl:output>
[src]<xsl:output method="html" media-type="text/html; charset=windows-1251" encoding="windows-1251" indent="yes"/>[src]

P.S. Решение нашел за две минуты поиска в гугле
http://xpoint.ru/forums/internet/XML/thread/40249.xhtml

С уважением, Vasilisk
...
Рейтинг: 0 / 0
17.11.2008, 08:33
    #35656977
Smr_guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
Огромное спасибо, действительно помогло!
...
Рейтинг: 0 / 0
16.12.2008, 10:40
    #35716363
Smr_guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова о кодировках XML->HTML
Только счас обратил внимание, что решение описаной проблемы оказалось "условным", т.к. теперь, прописав
Код: plaintext
<xsl:output method="html" version="4.0" media-type="text/html; charset=windows-1251" encoding="windows-1251" indent="yes"/>
в выходном html получаю две кодировки, хотя и побеждает "windows-1251"
Код: plaintext
<META http-equiv="Content-Type" content="text/plain; charset=windows-1251; charset=UTF-16">
может проблема глубже, в недрах msxl?
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Снова о кодировках XML->HTML / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]