当输入 XML 和转换 XSL 是字符串时,如何使用 XslCompiledTransform。如何将转换结果作为字符串获取?

Posted

技术标签:

【中文标题】当输入 XML 和转换 XSL 是字符串时,如何使用 XslCompiledTransform。如何将转换结果作为字符串获取?【英文标题】:How do I use XslCompiledTransform when input XML and transform XSL are strings. How do I get the transformation result as a string? 【发布时间】:2013-04-29 23:45:22 【问题描述】:

我有一个字符串 inputXMLString,第二个包含名为 transformXSLString 的转换 XSL。它们都是正确格式化的xml。

如何在 C# 中使用 XslCompiledTransform 执行转换,以便将结果也作为字符串获取,比如说 resultXMLString?

【问题讨论】:

【参考方案1】:

可以分别使用XmlReader和StringReader StringWriter:

string inputXML = "...";
string transformXSL = "...";

XslCompiledTransform proc = new XslCompiledTransform();

using (StringReader sr = new StringReader(transformXSL))

  using (XmlReader xr = XmlReader.Create(sr))
  
    proc.Load(xr);
  


string resultXML;

using (StringReader sr = new StringReader(inputXML))

  using (XmlReader xr = XmlReader.Create(sr))
  
    using (StringWriter sw = new StringWriter())
    
      proc.Transform(xr, null, sw);
      resultXML = sw.ToString();
    
  

【讨论】:

谢谢!必须创建一个 stringreader 然后一个 xmlreader 然后 stringwriter 似乎有点愚蠢……但这对我有用。

以上是关于当输入 XML 和转换 XSL 是字符串时,如何使用 XslCompiledTransform。如何将转换结果作为字符串获取?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 WebView2 控件对本地文件执行 XML/XSL 转换?

如何使用 XSL 在 XML 转换中查找随机元素

如何在 Java 中将 xsl 应用于 xml

XSLT:如何将 XML 节点转换为字符串

链接 XSL 和 XML?`

根据给定的XSD将XML文件转换为另一个