Главная страница
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.014 c
2-1295938268
Василий21
2011-01-25 09:51
2011.05.08
Таймер чужой программы и HOOK


2-1295941539
Godod
2011-01-25 10:45
2011.05.08
Delphi и FilterGraph


11-1234297339
alex649
2009-02-10 23:22
2011.05.08
исчезает текст обработчика событий в Д7 при кпопытке компиляции


3-1257918283
Alshtam
2009-11-11 08:44
2011.05.08
Сравнение баз данных


2-1296743902
Женя
2011-02-03 17:38
2011.05.08
Таймер