我一直在使用这个函数从字符串中读取XML并应用XSLT样式表,它对于XML的一小部分非常有效:
private static string TransformXML(String XML, String XSLT)
{
string output = String.Empty;
using (StringReader srt = new StringReader(XSLT))
{
using (StringReader sri = new StringReader(XML))
{
using (XmlReader xrt = XmlReader.Create(srt))
using (XmlReader xri = XmlReader.Create(sri))
{
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xrt);
using (StringWriter sw = new StringWriter())
using (XmlWriter xwo = XmlWriter.Create(sw, xslt.OutputSettings)) // use OutputSettings of xsl, so it can be output as HTML
{
xslt.Transform(xri, xwo);
output = sw.ToString();
}
}
}
}
return output;
}
但是,对于XML的大部分内容,即使我知道格式正确,我也会收到错误。
以下是一个示例错误:解析名称时出现意外的文件结尾。第1行,第30001位。
我猜测缓冲有一个限制,但我无法完成它 - 代码在SSIS包中,不同的脚本任务生成并转换XML。
我感谢任何帮助!