![]() |
Stylesheet in XML Datei einfügen
Ich arbeite zurzeit an einem Programm mit welchem ich XML Dateien aufrufen und über eine WebBrowser Komponente anschauen kann.
Ich möchte nun eine XSL Datei als StyleSheet verwenden. Die XML Dateien sind temporär. Ich möchte also beim öffnen folgende Zeile in die XML Datei eintragen "<?xml-stylesheet href="Layout.xsl" type="text/xsl"?>". (und beim schließen wieder löschen.) Danach lädt der Browser die Datei und ich sollte halt eine schöne Ansicht mit Layout haben. Nun liegt mein problem darin das er mir die Zeile für den Stylesheet nicht hinzufügt.
Delphi-Quellcode:
So in etwa habe ich mir das gedacht.
procedure TForm1.AddLine;
var Node : IXMLNode; Line : String; begin //add XSL Layout Line := '?xml-stylesheet href="Layout.xsl" type="text/xsl"?'; try begin Node := XML.CreateNode(Line, ntCData); XML.ChildNodes.Add(Node); end; except ShowMessage('Datei kann nicht angezeigt werden'); end; end; Ich denke es liegt an dem Attribut ntCData. Weiß jemand was da genau rein muss? lg LordPsychoter Edit: Crosspost: ![]() |
Re: Stylesheet in XML Datei einfügen
Tags, die mit <? anfangen sind sogenannte Processing-Instructions.
Bei Benützung von MSXML sähe das so aus:
Delphi-Quellcode:
XML_Doc.appendChild(XML_Doc.createProcessingInstruction('xml-stylesheet', 'href="Layout.xsl" type="text/xsl"?'));
|
Re: Stylesheet in XML Datei einfügen
Hallo,
ich habe den Code von Andreas noch ein wenig verhübscht:
Delphi-Quellcode:
Freundliche Grüße
procedure TDemoForm.ButtonClick(Sender: TObject);
const PI_DATA = 'href="layout.xsl" type="text/xsl"'; PI_TARGET = 'xml-stylesheet'; begin with XMLDocument do begin XML.Text := '<?xml version="1.0"?><root/>'; Active := True; ChildNodes.Insert( ChildNodes.IndexOf(DocumentElement), CreateNode(PI_TARGET, ntProcessingInstr, PI_DATA) ); ShowMessage(XML.Text); Active := False; end; end; |
Re: Stylesheet in XML Datei einfügen
Danke ich werde es morgen direkt ausprobieren.
Aber. wtf? Woher kennst du meinen Namen? lg LordPsychoter |
Re: Stylesheet in XML Datei einfügen
Entweder ist es Zufall oder shmia heißt Andreas und marabu bezog sich auf ihn und nicht auf Dich. Jetzt haste Dich verraten. :stupid:
|
Re: Stylesheet in XML Datei einfügen
Ich bekomme nun beim erstellen des Nodes eine Exception
Delphi-Quellcode:
Node := XML.CreateNode(Line, ntProcessingInstr);
Zitat:
Delphi-Quellcode:
Nun ist die Frage warum.procedure TForm1.AddLine; var Node : IXMLNode; Line : String; begin //add XSL Layout Line := 'xml-stylesheet href="Layout.xsl" type="text/xsl"'; try begin Node := XML.CreateNode(Line, ntProcessingInstr); XML.ChildNodes.Add(Node); end; except ShowMessage('Datei kann nicht angezeigt werden'); end; end; Ein bisschen weiter unten erstelle ich genau so einen Kommentar ohne das ich dabei probleme habe. |
Re: Stylesheet in XML Datei einfügen
Okay danke nochmal.
Ich habs
Delphi-Quellcode:
Kann mir auhc jemand erklären warum so? procedure TForm1.AddLine; var Node : IXMLNode; Line : String; const PI_DATA = 'href="layout.xsl" type="text/xsl"'; PI_TARGET = 'xml-stylesheet'; begin //add XSL Layout Line := 'xml-stylesheet href="Layout.xsl" type="text/xsl"'; try begin Node := XML.CreateNode(PI_Target, ntProcessingInstr, PI_DATA); ShowMessage('fertig'); XML.ChildNodes.Add(Node); XML.SaveToFile(TempPath+Form2.Datei); ShowMessage('klappt'); end; except ShowMessage('Datei kann nicht angezeigt werden'); end; end; lg LordPsychoter |
Re: Stylesheet in XML Datei einfügen
Moin,
Zitat:
Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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