Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.08;
Скачать: CL | DM;

Вниз

transformNodeToObject и кодировка XML   Найти похожие ветки 

 
RWolf ©   (2011-02-02 16:44) [0]

Задача — получить отформатированный отступами файл XML в нужной кодировке. Кодировка должна быть прописана в заголовке XML.
Решаю следующим образом:


procedure SaveIndentedXML(doc:IXMLDOMDocument2);
const
 xslText=
"<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">"#13#10+
"  <xsl:output method="xml" indent="yes"/>"#13#10+
"  <xsl:template match="@* | node()">"#13#10+
"    <xsl:copy>"#13#10+
"      <xsl:apply-templates select="@* | node()"/>"#13#10+
"   </xsl:copy>"#13#10+
"  </xsl:template>"#13#10+
"</xsl:stylesheet>";
var
 xsl,res:IXMLDOMDocument2;
begin
 xsl:=CoDOMDocument30.Create;
 xsl.async:=False;
 xsl.loadXML(xslText);

 res:=CoDOMDocument30.Create;
 res.async:=False;
 res.validateOnParse:=True;

 doc.transformNodeToObject(xsl,res);
 res.save("res.xml");
end;


Если применить transformNodeToObject к XML-документу, то получаем результат в кодировке UTF-16; можно ли заставить его сохраняться в другой кодировке?
Манипуляции с копированием XML в текстовую строку с последущей конвертацией и обратным присвоением не подходят, т.к. портят processing instructions < ? ... ? >.


 
Медвежонок ХМЛ ©   (2011-02-02 17:24) [1]

<xsl:output .....  encoding="UTF-8" ....../>

http://www.w3schools.com/xsl/el_output.asp


 
RWolf ©   (2011-02-02 17:36) [2]


> Медвежонок ХМЛ ©   (02.02.11 17:24) [1]

Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2011.05.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
2-1296738757
Conflict
2011-02-03 16:12
2011.05.08
Диалог выбора папки ShBrowseForFolder с определенной директории


15-1294777603
Verter_Alice
2011-01-11 23:26
2011.05.08
Метод слежки с помощью куков


15-1296070554
Super XML
2011-01-26 22:35
2011.05.08
Сравнение XML


11-1232633546
Dy1
2009-01-22 17:12
2011.05.08
проблема с ConsoleApp


2-1296592407
Тимоха111
2011-02-01 23:33
2011.05.08
ошибка AV при получении динамического массива из длл