次の VB.NET コードを使用して、XML を新しい XML に変換し、処理を続けます。これは 1 回限りのプロセスであり、複数回行われるものではないため、私が見る限り、キャッシュから得られる効率はありません。
コードは機能しますが、パフォーマンスの問題が発生しています。パフォーマンスの問題が XSLT に関連している可能性があることに感謝します。
また、特に 64 ビット環境で、XslCompiledTransform でパフォーマンスの問題を抱えている開発者のインスタンスも発見しました。これはバグである可能性があります ( 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
私のコードの問題を指摘できる人はいますか?
編集: これは 1 回限りの変換であるため、ループはありません。