使用C#中的XSLT将XML转换为HTML的最简单方法?

Sha*_*ica 20 c# xslt

XSLT新手问题:请填写下面的C#代码片段中的空白:

public static string TransformXMLToHTML(string inputXml, string xsltString) {
  // insert code here to apply the transform specified by xsltString to inputXml 
  // and return the resultant HTML string.
  // You may assume that the xslt output type is HTML.
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Mar*_*ell 38

怎么样:

public static string TransformXMLToHTML(string inputXml, string xsltString)
{
    XslCompiledTransform transform = new XslCompiledTransform();
    using(XmlReader reader = XmlReader.Create(new StringReader(xsltString))) {
        transform.Load(reader);
    }
    StringWriter results = new StringWriter();
    using(XmlReader reader = XmlReader.Create(new StringReader(inputXml))) {
        transform.Transform(reader, null, results);
    }
    return results.ToString();
}
Run Code Online (Sandbox Code Playgroud)

请注意,理想情况下,您将缓存并重新使用XslCompiledTransform- 或者可能使用XslTransform(但它被标记为已弃用).

  • +1:它没有比这更简单. (3认同)
  • 那么它可以变得比这更简单。所有这些 XML 阅读器都可以替换为文件的实际位置,例如: XslCompiledTransform transform = new XslCompiledTransform("file://"+xsltString); 还转换有一个版本,您可以使用“file://”+ inputXml 技巧传递文件的位置;) (2认同)