我有我使用的一些轉換成XML新的XML,我再繼續處理下面的VB.NET代碼。 這是一個一次性的過程,不是多次完成的事情,所以沒有效率可以從緩存中獲得,據我所知。XslCompiledTransform從XmlDocument的到的XmlDocument
該代碼有效,但我看到性能問題。 我明白,性能問題可能與XSLT有關。
我還發現具有與XslCompiledTransform的性能問題,尤其是在64位環境中,這可能是一個錯誤的開發實例(http://connect.microsoft.com/VisualStudio/feedback/details/508748)
既不可能XSLT的性能問題,也不符合XslCompiledTransform的問題是我的控制之下,但是我的代碼存在問題是可行的。我只是想確保我的轉換方法是我所需要的最有效的方法。
Public Function TransformUsingXPathNavigator(ByVal InputXML As XmlDocument, ByVal XSLTLocation As String) As XmlDocument
Dim theNavigator As XPathNavigator
theNavigator = InputXML.CreateNavigator()
Dim theTransform As XslCompiledTransform = New XslCompiledTransform()
theTransform.Load(XSLTLocation)
Dim outputXML As New XmlDocument()
Using writer As XmlWriter = outputXML.CreateNavigator().AppendChild()
theTransform.Transform(theNavigator, writer)
End Using
Return outputXML
End Function
是否有人能夠指出我的代碼的任何問題?
編輯:這是一個一次性的變換,所以沒有循環。
此轉換是否僅發生一次(每個XSLT)或多次?如果此代碼在循環中運行,請嘗試在循環外部創建'XslCompiledTransform'對象並將其傳遞到'XSLTLocation'位置。 Load()方法運行的次數越少越好。 – psmay