Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiagojpa

Ler um nó especifico xml

Recommended Posts

Fala galera, estou com um problema , estou querendo ler um nó especifico do xml e não consigo.

 

o xml é esse

 

<?xml version="1.0" encoding="UTF-8" ?> 
- <kml xmlns="http://earth.google.com/kml/2.0">
- <Response>
 <name>Rua Jordão, 510 - tanque - Rio de Janeiro</name> 
- <Status>
 <code>200</code> 
 <request>geocode</request> 
 </Status>
- <Placemark id="p1">
 <address>R. Jordão, 510 - Tanque, Rio de Janeiro - RJ, 22725-549, Brasil</address> 
- <AddressDetails Accuracy="8" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
- <Country>
 <CountryNameCode>BR</CountryNameCode> 
 <CountryName>Brasil</CountryName> 
- <AdministrativeArea>
 <AdministrativeAreaName>RJ</AdministrativeAreaName> 
- <Locality>
 <LocalityName>Rio de Janeiro</LocalityName> 
- <DependentLocality>
 <DependentLocalityName>Tanque</DependentLocalityName> 
- <Thoroughfare>
 <ThoroughfareName>R. Jordão, 510</ThoroughfareName> 
 </Thoroughfare>
- <PostalCode>
 <PostalCodeNumber>22725-549</PostalCodeNumber> 
 </PostalCode>
 </DependentLocality>
 </Locality>
 </AdministrativeArea>
 </Country>
 </AddressDetails>
- <ExtendedData>
 <LatLonBox north="-22.9080001" south="-22.9142953" east="-43.3691175" west="-43.3754127" /> 
 </ExtendedData>
- <Point>
 <coordinates>-43.3722567,-22.9111522,0</coordinates> 
 </Point>
 </Placemark>
 </Response>
 </kml>

 

 

Quero ler apenas isso

 

<coordinates>-43.3722567,-22.9111522,0</coordinates>

 

 

meu codigo esta assim

 


<%
'Instancia o objeto HttpRequest.
Set objSrvHTTP = Server.CreateObject("MSXML2.XMLHTTP.3.0")



slink = " http://maps.google.com/maps/geo?output=xml&q=Rua%20Jord%C3%A3o,%20510%20-%20tanque%20-%20Rio%20de%20Janeiro "
'Informe o método e a URL a ser capturada
objSrvHTTP.open "GET", slink, false



'Com o método setRequestHeader informamos o cabeçalho HTTP
objSrvHTTP.setRequestHeader "Content-Type", "text/xml"



'O método Send envia a solicitação HTTP e exibe o conteúdo da página
objSrvHTTP.Send()



'Amazenamos o resultado na variável strXML
strXML = objSrvHTTP.ResponseXML.xml



'Instancia o objeto XMLDOM
Set objXML = Server.CreateObject("MSXML2.DOMDocument.4.0")



'Indicamos que o download em segundo plano não é permitido
objXML.async = false



'O método loadXML carrega parte do código, sem ter o documento XML
objXML.loadXML(strXML)



'Verifica possíveis erros com o método parseError
if objXML.ParseError.errorCode <> 0 then



response.write "Código do erro: " & objXML.parseError.errorCode & "<br>"
response.write "Posição no arquivo: " & objXML.parseError.filepos & "<br>"
response.write "Linha: " & objXML.parseError.line & "<br>"
response.write "Posição na linha: " & objXML.parseError.linepos & "<br>"
response.write "Descrição: " & objXML.parseError.reason & "<br>"
response.write "Texto que causa o erro: " & objXML.parseError.srcText & "<br>"
response.write "Url do arquivo com problemas: " & objXML.parseError.url



else



'Instancia o objeto documentElement para extrair os elementos
Set raiz = objXML.documentElement



'Looping para percorrer todos os elementos filhos

For i = 0 to raiz.childNodes.length -1



'A propriedade NodeName contém o nome do elemento
'A propriedade childNodes contém a lista de elementos filhos
response.Write raiz.NodeName & "<br>" & raiz.childNodes.item(i).childNodes.item(0).text & "<br><p>"




next



end if

'Destruíndo os objetos
Set objXML = Nothing
Set objSrvHTTP = Nothing
%>







 

 

 

tentei fazer isso mais deu erro

 

response.Write  objXML.SelectSingleNode("Placemark").ChildNodes(4).InnerText

 

 

como posso resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw xamburzum,

 

consegui chegar no nó assim

 

 

raiz.childNodes.item(0).childNodes.item(2).childNodes.item(3).childNodes.item(0).text

 

 

 

agora preciso saber se o nó existe

 

tentei isso, mas deu certo..

 

 

if isEmpty(raiz.childNodes.item(0).childNodes.item(2).childNodes.item(3).childNodes.item(0).text) then

 

 

o xml é dinamico , as vezes vem o nó , as vezes não..

 

alguem sabe como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.setProperty "ServerHTTPRequest", True
objXML.async = False

objXML.Load(server.MapPath("teste.xml"))

set rootElement = objXML.documentElement

qtdElementos = rootElement.childNodes.length

for i = 0 to qtdElementos-1
 qtdAtributos = rootElement.childNodes(i).attributes.length
 for x = 0 to qtdAtributos-1
   response.Write("Atributo: <b>" & rootElement.childNodes(i).attributes(x).name & "</b> - Valor: <b>" & rootElement.childNodes(i).attributes(x).text & "</b><br>")
 next
next 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.