在C#中生成XSL块

时间:2011-01-18 00:30:58

标签: c# xslt

我正在尝试在C#应用程序中生成以下XSL块。任何人都可以告诉我该怎么做?

<XSL-Script xmlns:xsl="http://www.w3.org/......">
  <xsl:value-of select="$VAR">
</XSL-Script>

我尝试使用常规的C#XML类,并从标记名称中删除了xsl:,因为它认为xsl:是命名空间。并且它也不允许在VAR前面使用“$”作为“select”的属性值。

非常感谢。

1 个答案:

答案 0 :(得分:1)

这是一个简单的C#程序,它“生成”一个完整的XSLT样式表,然后对“生成的”XML文档执行此转换,并将转换结果输出到文件中:

using System.IO;
using System.Xml;
using System.Xml.Xsl;

    class testTransform
    {
        static void Main(string[] args)
        {
            string xslt = 
@"<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:variable name='vX' select='1'/>

<xsl:template match='/'>
 <xsl:value-of select='$vX'/>
</xsl:template>
</xsl:stylesheet>";

            string xml = @"<t/>";

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(xml);

            XmlDocument xslDoc = new XmlDocument();
            xslDoc.LoadXml(xslt);

            XslCompiledTransform xslTrans = new XslCompiledTransform();

            xslTrans.Load(xslDoc);

            xslTrans.Transform(xmlDoc, null, new StreamWriter("output.txt"));
        }
    }

构建并执行此应用程序时,它会创建一个名为"output.txt"的文件,其内容是动态生成的XSLT转换的预期正确结果

<?xml version="1.0" encoding="utf-8"?>1