首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从XmlDocument到XmlDocument的XslCompiledTransform

从XmlDocument到XmlDocument的XslCompiledTransform
EN

Stack Overflow用户
提问于 2013-05-15 23:07:49
回答 1查看 1.8K关注 0票数 3

我使用下面的VB.NET代码将一些VB.NET转换成新的XML,然后继续处理。这是一个一次性的过程,而不是做多次的事情,所以据我所知,缓存不会带来效率。

代码可以工作,但我看到了性能问题。我知道性能问题可能与XSLT有关。

我还发现了一些开发人员在使用XslCompiledTransform时遇到性能问题的实例,特别是在64位环境中,这可能是一个错误(http://connect.microsoft.com/VisualStudio/feedback/details/508748)

可能出现的XSLT性能问题和XslCompiledTransform的问题都不在我的控制范围之内,但是我的代码有问题是可行的。我只想确保我的转换方法是我所需要的最有效的方法。

代码语言:javascript
复制
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

有谁能指出我的代码有什么问题吗?

编辑:这是一个一次性的转换,所以没有循环。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-10 23:32:13

我们永远不能使用XslCompiledTransform提高代码的效率。

我们能够识别出在XSLT中运行多次的循环,当删除时,代码的运行时间从60+秒减少到不到1秒。

但是,XSLT超出了我的控制范围,因此我需要找到一个替代解决方案。这不是很理想,但我不得不回到过时的XslTransform。

使用XslTransform,代码在不到1秒的时间内运行,这正是我需要的。

下一步,我们使用的XSLT将需要整理,但现在使用过时的代码是我的问题的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16568709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档