c#StringReader,XmlReader,XSLT - 意外的XML声明

时间:2014-02-17 22:14:43

标签: c# xslt xmlreader stringreader

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

我感谢任何帮助!

0 个答案:

没有答案