2011-05-23 75 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

相關問題