Moin Marabu,
vielen Dank für die Infos. Mit den Stichwörten bin ich weiter gekommen und zumindest das formatierte schreiben klappt jetzt schon mal:
XML-Code:
<?
xml version="1.0" encoding="UTF-16" standalone="no"?>
<SPIeD-Dataset>
<NewProg>
<Package_Name/>
<Select_Installation_Program/>
<Operating_System>Windows</Operating_System>
<Enable_Uninstall>False</Enable_Uninstall>
<Select_Uninstallation_Program/>
<Enable_Installation_Logging>False</Enable_Installation_Logging>
</NewProg>
</SPIeD-Dataset>
Ich nutze dafür diesen Aufruf:
Delphi-Quellcode:
procedure TFormMain.AdvToolBarButton2Click(Sender: TObject);
var
lStringList : TStringList;
Writer : IMXWriter;
Reader : IVBSAXXMLReader;
begin
// [url]http://www.topxml.com/Borland-XML/rn-132019_How-to-use-XPath-with-IXMLDOMDocument2-and-XMLWriter-to-control-indent.aspx[/url]
Writer := CoMXXMLWriter.Create;
Reader := CoSAXXMLReader.Create;
Writer.byteOrderMark := True;
Writer.omitXMLDeclaration := False;
Writer.indent := True;
Writer.encoding := '
UTF-8';
Reader.contentHandler := Writer
as IVBSAXContentHandler;
Reader.dtdHandler := Writer
as IVBSAXDTDHandler;
Reader.errorHandler := Writer
as IVBSAXErrorHandler;
// Reader.putProperty('http://xml.org/sax/properties/lexical-handler', Writer);
// Reader.putProperty('http://xml.org/sax/properties/declaration-handler', Writer);
Reader.parse(XMLDoc);
lStringList := TStringlist.Create;
lStringList.Text := Writer.output;
//lStringList.SaveToFile('E:\TestNew.xml');
XMLMemo.Lines := lStringList;
end;
Kannst mir noch jemand verraten wie ich das hier anpassen kann:
encoding="UTF-16"
Writer.encoding := 'UTF-8';
hilft jedenfalls nicht weiter.