2011-05-23 78 views
2

我有一个XML文件,并且附带了一个XSL转换器文件,可用于将XML文件转换为xml文件NAXML标准格式。出于某种原因,不过,我得到一个异常时,我调用Load功能在XslCompiledTransformXslLoadException - 此方法与此类中的另一个方法具有相同的名称和参数类型

using System.Xml.Xsl; 

问题的代码块:

XslCompiledTransform xlstProcessor = new XslCompiledTransform(); 
     XsltSettings settings = new XsltSettings(); 
     settings.EnableScript = true; 
     System.Xml.XmlReader reader = System.Xml.XmlReader.Create("C:\\tlog2naxml.xslt"); 
     System.Xml.XmlResolver resolver = new System.Xml.XmlUrlResolver(); 
     xlstProcessor.Load(reader, settings, resolver); //Exception occurs here. 
     xlstProcessor.Transform(@"C:\vperiodrept.xml", @"C:\test.xml"); 

我尝试了这些参数的不同变化,但我一直得到这个例外。当我查看XslCompiledTransform类的定义时,我看不到任何重复的方法签名。这是一个标准的.net类,所以我不希望找到任何。如果任何人有任何想法可能会导致这种情况,我将不胜感激的帮助。

+0

在XSLT源代码中有扩展脚本吗? (我问,因为你将'EnableScript'设置为true。) – Tomalak 2011-05-23 15:52:56

+0

是的,它使用javascript。如果我不添加EnableScript属性设置为true的设置,我将在转换过程中遇到异常,说明未启用脚本。有趣的是,这意味着XslCompiledTransform.Load(字符串styleSheetUri)似乎工作正常......但不幸的是我不能使用它。我需要一个设置。 – Hagelt18 2011-05-23 16:04:49

+1

然后你的重复函数实际上可能在JavaScript中。 – Tomalak 2011-05-23 16:14:55

回答

3

问题在于您正在加载的XSLT中的脚本,而不是XslCompiledTransform类;编译器在转换中编译脚本时引发此异常,并且在脚本中遇到两个具有相同签名的方法。我首先要看的是包括 - 我不确定,但我敢打赌,编译器可能不够聪明,无法识别何时两次包含同一文件。

+1

我查看了xslt文件,发现它正在崩溃的重复方法。我感谢你和@Tomalak。 – Hagelt18 2011-05-23 16:24:21

+0

@ Hagelt18:我代表你给+1。 ;-) – Tomalak 2011-05-23 17:31:04

相关问题