Til inspiration:
using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
namespace E
{
public class Util
{
public string DocType()
{
return @"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Strict//EN"" ""
http://www.w3.org/TR/xhtml1/DTD/Strict.dtd"">"; }
}
public class MainClass
{
public static void Main(string[] args)
{
string input =
@"<something>
<data>ABC</data>
</something>";
string transform =
@"<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl='
http://www.w3.org/1999/XSL/Transform' xmlns:ms='urn:schemas-microsoft-com:xslt'
xmlns:cs='urn:arne:cs'
version='1.0'>
<xsl:template match='something'>
<xsl:value-of disable-output-escaping='yes' select='cs:DocType()'/>
<html>
<head>
<title>Demo</title>
</head>
<body>
<p>Data = <xsl:value-of select='data/text()'/></p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(input);
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(new XmlTextReader(new StringReader(transform)), new XsltSettings(true, true), null);
StringWriter sw = new StringWriter();
XmlTextWriter wrt = new XmlTextWriter(sw);
wrt.Formatting = Formatting.Indented;
XsltArgumentList xal = new XsltArgumentList();
xal.AddExtensionObject("urn:arne:cs", new Util());
xslt.Transform(doc, xal, wrt);
Console.WriteLine(sw.ToString());
Console.ReadKey();
}
}
}