我有以下代码。它工作正常,但加载需要很长时间,大约30秒。有什么我可以做的,以缩短这一次。缩短xml文件加载时间
另外,我想搜索的XML文件与名称以A,B,C ETX文件。我怎么做?
非常感谢,
Dim xdoc As New XPathDocument(xt)
Dim nav As XPathNavigator = xdoc.CreateNavigator()
Dim expr As XPathExpression
expr = nav.Compile("/pf:CONTRACTS/pf:CONTRACT")
Dim namespaceManager As XmlNamespaceManager = New XmlNamespaceManager(nav.NameTable)
namespaceManager.AddNamespace("pf", "http://namespace/")
expr.SetContext(namespaceManager)
Dim nodes As XPathNodeIterator = nav.Select(expr)
If nodes.Count <> 0 Then
Dim tr As String = Nothing
For Each node As XPathNavigator In nodes
tr += "<td><a Target='_blank' href='http://www.urltosite.aspx?contract=" & node.SelectSingleNode("pf:ID", namespaceManager).Value & "'>" & node.SelectSingleNode("pf:NAME", namespaceManager).Value & "</a></td>"
For Each subNode2 As XPathNavigator In node.Select("pf:SUPPLIERS/pf:SUPPLIER", namespaceManager)
tr += "<td>" & subNode2.SelectSingleNode("pf:SUPPLIERNAME", namespaceManager).Value & "</td>"
Next
tr += "<td>" & node.SelectSingleNode("pf:ENDDATE", namespaceManager).Value & "</td>"
tr += "</tr>"
Next
Dim th As String = "<th width='50%'>Name</th><th width='30%'>Supplier</th><th width='20%'>End Date</th>"
div1.InnerHtml = ("<table width='96%' border='0' cellpadding='0' cellspacing='0' border='0' class='datatable1'>" & th) + tr & "</table>"
Else
div1.InnerHtml = "No results for your search"
End If
++ UPDATE ++
感谢您的帮助
我添加了一个StringBuilder我的代码,而不是字符串连接。但是,性能并没有改变,所以我认为这个问题在别的地方。
我忘了我以前的XML数据我收到来自Web服务我耗费电子邮件提。有什么我可以做的,以优化这种表现? 非常感谢
如果这是你要你的XML转换的方式,你应该使用预先适当大小的'StringBuilder'代替'String'来执行所有这些并置。 – 2010-03-03 17:47:24
从Web服务获取文件需要多长时间?如果需要29秒才能获得文件,那么需要1秒来执行此代码,那么问题不在于代码。此外,如果您可以在1秒内针对本地文件副本运行此代码,并且您可以在几秒钟内从服务器获取文件,那么先复制本地文件,然后解析本地副本。 – xcud 2010-03-04 21:53:43