2010-04-08 48 views

回答

2

我不認爲有一個單一的API調用,將允許,但你當然可以實現與沿以下辦法的幾行:

XslCompiledTransform proc = new XslCompiledTransform(); 
proc.Load("sheet.xsl"); 

XmlDocument tempResult = new XmlDocument(); 
using (XmlWriter xw = tempResult.CreateNavigator().AppendChild()) 
{ 
    proc.Transform("input.xml", null, xw); 
    xw.Close(); 
} 

XmlSerializer ser = new XmlSerializer(typeof(Foo)); 
Foo foo = (Foo)ser.Deserialize(new XmlNodeReader(tempResult)); 
+0

謝謝Martin。我現在有類似的東西,問題是500K-1M左右的轉換文件相當大。當同時處理多個XML文檔時,比如說大約10個XML,內存高達1.5G +,而雙核上的處理器則使用98-99%的使用率。隨着1號文件,該處理器的使用STIL 98-99%,但內存使用量大約是300M 機規格: 2x2dual核Intel Xeon 1.6GHz的 4G 的Windows 2008 x64的 – G33kKahuna 2010-04-09 13:54:13

+0

好吧,leanred新的東西。使用與上面相同的代碼並使用另一個重載.Load(Type)而不是.Load(String)。這擊落了資源利用率的1/10 ...感謝你的幫助Martin。 – G33kKahuna 2010-04-09 22:19:34