![]() |
XML-Header/XSL-Referenz mittels MSXML erzeugen
Ich arbeite mit MSXML und erzeuge mit dessen Funktionalität meine eigenen XML-Dokumente. Das klappt auch schön und gut, was ich bisher aber noch nicht hinbekommen habe, ist
1. einen gültigen XML-Header samt xml-Version und encoding-Attribut zu erzeugen und 2. darauffolgend eine XSL-Stylesheet-Referenz einzufügen. Mein Codebeispiel:
Delphi-Quellcode:
erzeugt folgendes XML-Dokument:
procedure CreateXMLFile(FileName: string);
var i: Integer; XMLDoc: IXMLDOMDocument2; aLine: IXMLDOMElement; aElement: IXMLDOMElement; begin XMLDoc := CoDOMDocument40.Create; try XMLDoc.setProperty('NewParser', True); XMLDoc.setProperty('SelectionLanguage', 'XPath'); XMLDoc.validateOnParse := False; // Wurzelknoten erzeugen XMLDoc.appendChild(XMLDoc.createElement('tabelle')); for i := 1 to (Grid.RowCount - 1) do begin aLine := XMLDoc.createElement('line'); XMLDoc.documentElement.appendChild(aLine); // Spalte 1 aElement := XMLDoc.createElement('spalte1'); aLine.appendChild(aElement); aElement.text := Grid.Cells[1, i]; // Spalte 2 aElement := XMLDoc.createElement('spalte2'); aLine.appendChild(aElement); aElement.text := Grid.Cells[2, i]; // Spalte 3 aElement := XMLDoc.createElement('spalte3'); aLine.appendChild(aElement); aElement.text := Grid.Cells[3, i]; end; XMLDoc.save(FileName); finally XMLDoc := nil; end; end;
Delphi-Quellcode:
Es soll aber so aussehen:
<tabelle>
<line> <spalte1>1</spalte1> <spalte2>2</spalte2> <spalte3>3</spalte3> </line> <line> <spalte1>1</spalte1> <spalte2>2</spalte2> <spalte3>3</spalte3> </line> <line> <spalte1>1</spalte1> <spalte2>2</spalte2> <spalte3>3</spalte3> </line> </tabelle>
Delphi-Quellcode:
Wie kriege ich das mit MSXML-Bordmitteln hin?
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Stylesheet.xsl"> <tabelle> <line> <spalte1>1</spalte1> <spalte2>2</spalte2> <spalte3>3</spalte3> </line> <line> <spalte1>1</spalte1> <spalte2>2</spalte2> <spalte3>3</spalte3> </line> <line> <spalte1>1</spalte1> <spalte2>2</spalte2> <spalte3>3</spalte3> </line> </tabelle> |
Re: XML-Header/XSL-Referenz mittels MSXML erzeugen
Mit createProcessingInstruction() erzeugt man die Knoten <? ..... ?>
Delphi-Quellcode:
XMLDoc := CoDOMDocument40.Create;
XMLDoc.appendChild(Result.createProcessingInstruction('xml', 'version="1.0" encoding="UTF-8"')); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz