XML: Como tornar a pesquisa mais rápida?
Pessoal,
Tenho que acessar um arquivo XML grande, com muitos resgistros, e pegar apenas algumas poucas informações. Da forma como estou fazendo hoje está muito lento e gostaria de saber se alguém pode me orientar para fazer algo que fique mais rápido para procurar as informações no arquivo.
Normalmente o arquivo tem uns 5000 registros de cidades, mas separei algumas apenas para postar aqui o formato:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<weather>
<region name="Acre" local="national">
<city name="Acrelândia">
<day1 date="07/02/2008" low="23" high="30" prob="80" quant="10" condition="Chuvoso" icon="5" />
<day2 date="08/02/2008" low="21" high="32" prob="70" quant="05" condition="Sol, nuvens e chuva" icon="4" />
<day3 date="09/02/2008" low="22" high="33" prob="70" quant="10" condition="Sol, nuvens e chuva" icon="4" />
<day4 date="10/02/2008" low="23" high="33" prob="70" quant="15" condition="Sol, nuvens e chuva" icon="4" />
</city>
<city name="Assis Brasil">
<day1 date="07/02/2008" low="21" high="28" prob="80" quant="10" condition="Chuvoso" icon="5" />
<day2 date="08/02/2008" low="19" high="30" prob="70" quant="05" condition="Sol, nuvens e chuva" icon="4" />
<day3 date="09/02/2008" low="20" high="31" prob="70" quant="10" condition="Sol, nuvens e chuva" icon="4" />
<day4 date="10/02/2008" low="21" high="31" prob="70" quant="15" condition="Sol, nuvens e chuva" icon="4" />
</city>
<city name="Brasiléia">
<day1 date="07/02/2008" low="22" high="29" prob="80" quant="10" condition="Chuvoso" icon="5" />
<day2 date="08/02/2008" low="20" high="31" prob="70" quant="05" condition="Sol, nuvens e chuva" icon="4" />
<day3 date="09/02/2008" low="21" high="32" prob="70" quant="10" condition="Sol, nuvens e chuva" icon="4" />
<day4 date="10/02/2008" low="22" high="32" prob="70" quant="15" condition="Sol, nuvens e chuva" icon="4" />
</city>
<city name="Bujari">
<day1 date="07/02/2008" low="23" high="30" prob="80" quant="10" condition="Chuvoso" icon="5" />
<day2 date="08/02/2008" low="21" high="32" prob="70" quant="05" condition="Sol, nuvens e chuva" icon="4" />
<day3 date="09/02/2008" low="22" high="33" prob="70" quant="10" condition="Sol, nuvens e chuva" icon="4" />
<day4 date="10/02/2008" low="23" high="33" prob="70" quant="15" condition="Sol, nuvens e chuva" icon="4" />
</city>
</region>
</weather>
A forma como estou acessando é:
Set rssXML = CreateObject("Microsoft.XMLDOM")
rssXML.async = False
If rssXML.Load("bigplan.xml") Then
lowrSP = ""
highSP = ""
iconSP = 0
TEMP_MIN = "Min. "
TEMP_MAX = "Max. "
GRAUS = "° C"
TOTAL_SP = 0
Set REGIAO = rssXML.documentElement
TOTAL_REGIAO = REGIAO.childNodes.length
For i = 0 To (TOTAL_REGIAO - 1)
NOME_REGIAO = Cstr(REGIAO.CHILDNODES.ITEM(i).getAttribute("name"))
Select Case NOME_REGIAO
case "São Paulo"
set CIDADE = REGIAO.childNodes.item(i).childNodes
TOTAL_CIDADE = CIDADE.length
For j = 0 to (TOTAL_CIDADE - 1)
NOME_CIDADE = Cstr(CIDADE.item(j).getAttribute("name"))
Select Case NOME_CIDADE
case "São Paulo"
set TEMPO = CIDADE.item(j).getElementsByTagName("day1")
lowrSP = TEMP_MIN & Cstr(TEMPO.item(0).getAttribute("low")) & GRAUS
highSP = TEMP_MAX & Cstr(TEMPO.item(0).getAttribute("high")) & GRAUS
iconSP = Cstr(TEMPO.item(0).getAttribute("icon"))
TOTAL_SP = TOTAL_SP + 1
if TOTAL_SP = 4 then exit for
End Select
Next
End Select
Next ' Next For
end if
Discussão (9)
Carregando comentários...