0

我一直在使用这个函数从字符串中读取 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。

我很感激任何帮助!

4

0 回答 0