C# 如何使用XSLT两次转换XML?

C# 如何使用XSLT两次转换XML?,c#,html,xml,xslt,C#,Html,Xml,Xslt,我必须用不同的.xslt文件转换.xml两次,我知道如何转换一次,但不知道如何重复,因为当我的输出类似于html字符串时,我更改了代码,使用XmlWriter而不是StringWriter(注释),但它生成了一个空xml,因此无法再次传输 public static HtmlString RenderXml(this HtmlHelper helper, string xml, string transformXsltPath, string xsltPath) { xm

我必须用不同的.xslt文件转换.xml两次,我知道如何转换一次,但不知道如何重复,因为当我的输出类似于html字符串时,我更改了代码,使用XmlWriter而不是StringWriter(注释),但它生成了一个空xml,因此无法再次传输

public static HtmlString RenderXml(this HtmlHelper helper, string xml, string transformXsltPath, string xsltPath)
    {
        xml = System.IO.File.ReadAllText(("C:/Users/Student/Documents/Visual Studio 2010/Projects/MvcApplication2/MvcApplication2/schemat.xsd"));

        XsltArgumentList args = new XsltArgumentList();
        XslCompiledTransform t = new XslCompiledTransform();
        t.Load(transformXsltPath);

        XmlReaderSettings settings = new XmlReaderSettings();
        settings.DtdProcessing = DtdProcessing.Parse;;
        using (XmlReader reader = XmlReader.Create(new StringReader(xml), settings))
        {
            //StringWriter writer = new StringWriter();
            XmlWriter writer = XmlWriter.Create(new StringWriter());
            t.Transform(reader, args, writer);
            XslCompiledTransform t2 = new XslCompiledTransform();
            t2.Load(xsltPath);
            XmlReader reader2 = XmlReader.Create(new StringReader(writer.ToString()), settings);

            StringWriter writer2 = new StringWriter();
            t2.Transform(reader2, args, writer2);

            HtmlString htmlString = new HtmlString(writer2.ToString());

            return htmlString;
        }
    }

我是否正确理解您正在使用一个应用XSLT转换的XML文件,其结果(可能是一种修改过的XML格式)将应用另一个XSLT转换?老实说,它是一个.xsd文件,需要使用.xsl转换以生成表单的HTML部分,但我想再次转换它,但是现在使用stylesheet.xsl也生成了表单的CSS部分。