У меня есть код ниже. Он отлично работает, но загрузка занимает слишком много времени, примерно 30 секунд. Есть ли что-то, что я могу сделать, чтобы сократить это время.shorten xml время загрузки файла
Кроме того, я хотел бы найти файл xml для документов с NAME, начиная с 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, которые я получаю, поступают из веб-службы, которую я потребляю. Есть ли что-нибудь, что я могу сделать, чтобы оптимизировать эту производительность? Большое спасибо
Если это так, как вы собираетесь конвертировать XML, вы должны использовать надлежащим образом предварительно размера 'StringBuilder' вместо' String' выполнять все эти конкатенации. –
Сколько времени требуется, чтобы получить файл из веб-службы? Если для получения файла требуется 29 секунд, а затем 1 секунда для выполнения этого кода, проблема не в коде. Кроме того, если вы можете запустить этот код с локальной копией файла за 1 секунду, и вы можете получить файл с сервера через пару секунд, тогда сначала скопируйте файл локально, затем проанализируйте локальную копию. – xcud