XML * XML-SCHEMA * XPATH * XSL * XSL-FO * SVG * XQUERY * XPROC * ANT * DIVERSES



Diverses / C#.NET und XML / XSL-Transformationen mit C#.NET

XSL-Transformationen mit C#.NET

XSL-Transformationen mit C#.NET

➪ In C#.NET (analog in VisualBasic.NET) steht die Klasse "System.Xml.Xsl.XslCompiledTransform" bereit, von der nur ein Objekt angelegt werden muss, das die Methoden "Load" (XSL-Stylesheet) und "Transform" (Inputdatei, Outputdatei) aufruft.


System.Xml.Xsl.XslCompiledTransform t;
t = new System.Xml.Xsl.XslCompiledTransform();
string input = "input.xml";
string output = "output.html";
string xsldatei = "xsldatei.xsl";
t.Load(xsldatei);
t.Transform(input, output);

Alternativ können Sie die XSL-Transformation auch mithilfe von XmlDocument, XslCompiledTransform, XmlReader, XmlReaderSettings, XsltSettings, XPathNavigator und TextWriter durchführen:


Action<string, string, string> XSL_Transform = 
  (input, stylesheet, output) => {
  XmlDocument tmpdoc = new XmlDocument();
  tmpdoc.Load(input);      
  System.Xml.Xsl.XslCompiledTransform t;
  t = new System.Xml.Xsl.XslCompiledTransform(false);
  t.Load(XmlReader.Create(stylesheet,
    new XmlReaderSettings()
    {
      DtdProcessing = DtdProcessing.Parse
    }),
    new System.Xml.Xsl.XsltSettings(true, false),
    null
  );
  System.Xml.XPath.XPathNavigator nav = tmpdoc.CreateNavigator();
  using (TextWriter myWriter = File.CreateText(output))
  {
    t.Transform(nav, null, myWriter);
  }
};
XSL_Transform(@"input.xml",
  @"stylesheet.xsl",
  @"output.xml");

wg / 5. April 2021



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.



V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/cs_XSL.html