从包含foreach的XSL文件中获取编译的HTML

时间:2018-03-02 08:58:43

标签: c#

有人可以帮我修复此错误吗? 我有一个xsl文件,其in参数为ObjectList。我想从这个XSL中获取已编译的HTML,然后生成PDF(不重要)

这是我的xsl:

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

<xsl:output method="xml" indent="yes" />
<xsl:param name="test"></xsl:param>
<xsl:template match="/">
    <html>
        <body>
            <center>
                <p class="test">
                    <xsl:for-each select="$test">
                        <div>
                            <xsl:value-of select="description" />
                        </div>
                    </xsl:for-each>
      </p>
            </center>
        </body>
        <style>
    .test{color:red}

  </style>
    </html>
</xsl:template>

我给这个XSL一个列表,其中包含description作为字符串字段的对象。

这是我将XLS转换为html的方法:

 public static string TransformXMLToHTML(string templatePath, XsltArgumentList argsList)
    {
        string htmlString = string.Empty;
        XslCompiledTransform transform = new XslCompiledTransform();

        var mappedPath = System.Web.Hosting.HostingEnvironment.MapPath(templatePath);
        transform.Load(mappedPath);

        StringWriter sw = new StringWriter();
        transform.Transform(new XmlDocument(), argsList, sw);
        htmlString = sw.ToString();
        return htmlString;

    }

这就是我称之为方法的方法:

 XsltArgumentList pdfArgs = new XsltArgumentList();
 pdfArgs.AddParam("test", "", blob.Items);
  string html= HTMLFromXslt.TransformXMLToHTML("~/Templates/test.xslt", pdfArgs); ;

我收到此错误:

'Extension function parameters or return values which have Clr type 'List`1' are not supported.

谢谢你们!

0 个答案:

没有答案