Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: XML formatierte Ausgabe & andere Chields als Text ?

  Alt 13. Apr 2007, 09:16
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.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat