powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / При трансформации xml => xml не указывается кодировка
6 сообщений из 6, страница 1 из 1
При трансформации xml => xml не указывается кодировка
    #36961164
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,
Делаю трансформацию одного XML-файла в другой с помощью XSLT-схемы и MS XML 3. В XSLT-схеме указываю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml"
  encoding="windows-1251"
  omit-xml-declaration="no"
  indent="yes"
  media-type="text/xml"
/>
... 
Но на выходе получается XML-файл с кодировкой encoding="UTF-16". Приходится менять руками на правильную.
Можно как-то ещё указать парсеру, какую мне нужно кодировку.

Спасибо.
...
Рейтинг: 0 / 0
При трансформации xml => xml не указывается кодировка
    #36962763
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно. Есть три пути
1) Использовать XSLTProcessor и ПЕРЕД трансформацией присвоить его свойству output указатель на IStream или IXMLDOMDocument

2) Написать omit-xml-declaration="no" и самому указать кодировку <xsl:text disable-output-escaping="true">

3) Использовать кодировку по-умолчанию. Т.е. UTF-8

Я рекомендую первый способ
...
Рейтинг: 0 / 0
При трансформации xml => xml не указывается кодировка
    #36964093
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Понятно, буду пробовать.

Спасибо
...
Рейтинг: 0 / 0
При трансформации xml => xml не указывается кодировка
    #36965129
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Попробовал первый вариант, ничего не получилось. Т.е. атрибут encoding вообще не вносится в результат.
Я правильно понял идею по первому пункту?

Второй не совсем понял как использовать предложенную конструкцию, но пока не разбирал её, так что все впереди :).
Третий вариант вовсе непонятен, потому, что если ничего не указывать в результат вставляется кодировка UTF-16 и изменить её хотя-бы на UTF-8 у меня не получилось.

Спасибо
...
Рейтинг: 0 / 0
При трансформации xml => xml не указывается кодировка
    #36965259
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос,

Вместо
Код: plaintext
MsgBox xmlOut.XML
поставил
Код: plaintext
xmlOut.save("q3.xml")
Получился файл в требуемой кодировке.

По поводу свойства XML: xml property always returns a Unicode string.
...
Рейтинг: 0 / 0
При трансформации xml => xml не указывается кодировка
    #36965462
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refreg,

Спасибо, теперь стало понятно как и что получать :)
Мне сохранять в файл не нужно(только для контроля правильности трансформации), я получаю xml от веб-сервиса, трансформирую его в нужный формат и дальше загружаю в фокспрошный курсор. И вопрос с кодировкой возник именно из-за сохраняемых "промежуточно-контрольных" xml-файлов. Оказывается я их сохранял не средствами XML, а как строку полученную из свойства xml.
Ещё раз всем большое спасибо :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / При трансформации xml => xml не указывается кодировка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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