Ir para conteúdo

Arquivado

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

Gilberto Jr

Lendo XML com Tag Diferente

Recommended Posts

Bom dia moçada;

 

Vamos lá com mais um problema que estou tendo.

 

Seguinte, eu leio os XML's com esse código

set xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.open "GET", "http://www.tecnogalli.com.br/consultoria/arquivos/arquivoxml.xml" & cat, false
xml.send
 
set objXML = xml.respon---ML
 
set raiz = objXML.getElementsByTagName("nfeProc")
set nfe = objXML.getElementsByTagName("nNF")
set serie = objXML.getElementsByTagName("serie")
set itens = objXML.getElementsByTagName("qTrib")
set fornecedor = objXML.getElementsByTagName("xNome")
'inicio mudando para hering
'set dtEmissao = objXML.getElementsByTagName("dhEmi")
'fim mudando para hering
 
'inicio mudando para havainas
set dtEmissao = objXML.getElementsByTagName("dEmi")
'fim mudando para havainas
 
'set dtVencimento = objXML.getElementsByTagName("dVenc")
set valor = objXML.getElementsByTagName("vNF")
set cnpj = objXML.getElementsByTagName("dest/CNPJ")
set inscMun = objXML.getElementsByTagName("IE")
set valoricms = objXML.getElementsByTagName("ICMSTot/vICMS")
set numserie = objXML.getElementsByTagName("chNFe")
 
for i = 0 to raiz.length-1
notafiscal = nfe.item(i).text
serienf = serie.item(i).text
'response.Write(cLng(replace(itens.item(i).text,".",","))&"<br>")
cnpj = cnpj.item(i).text
inscMun = inscMun.item(i).text
'response.Write(left(cnpj,14))
dataemissao = mask_data(left(dtEmissao.item(i).text,10))
'datavencimento = mask_data(dtVencimento.item(i).text)
valor = valor.item(i).text
valoricms = valoricms.item(i).text
numserie = numserie.item(i).text
next

Mas o meu problema que estou enfrentando é. Alguns arquivos xml de nota fiscal eletrônica esta vindo com a data de emissão assim

objXML.getElementsByTagName("dEmi")

e agora tem uns xml's que esta vindo assim

objXML.getElementsByTagName("dhEmi")

Sendo assim eu tenho que fazer a mudança no meu código quando o xml tem a tag dEmi e pois voltar o código para pegar a tag dhEmi.

 

Existe uma forma de eu resolver esse problema pra não precisar ter que ficar mudando o meu código?

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Gilberto Jr, blza!

 

Já tentou usar o famoso If

 

If .......

 

set dtEmissao = objXML.getElementsByTagName("dEmi")

 

Else

 

set dtEmissao = objXML.getElementsByTagName("dhEmi")

 

End If

 

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim...

 

 

If  objXML.getElementsByTagName("CNPJ") = 11111111111111 then
 
set dtEmissao = objXML.getElementsByTagName("dEmi")
 
Elseif objXML.getElementsByTagName("CNPJ") = 222222222222222 then
 
set dtEmissao = objXML.getElementsByTagName("dhEmi")
 
End If
 

 

E não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi. Tudo bem?

 

No seu comentário você diz:

Mas o meu problema que estou enfrentando é. Alguns arquivos xml de nota fiscal eletrônica esta vindo com a data de emissão assim

objXML.getElementsByTagName("dEmi")

e agora tem uns xml's que esta vindo assim

objXML.getElementsByTagName("dhEmi")

Sendo assim eu tenho que fazer a mudança no meu código quando o xml tem a tag dEmi e pois voltar o código para pegar a tag dhEmi.

 

Existe uma forma de eu resolver esse problema pra não precisar ter que ficar mudando o meu código?

 

Agora eu te pergunto, quando a variável dEmi tem conteúdo, a outra é variável vem sem valor, e vice versa?
Pois se uma delas for em branco, você pode fazer um IF de quando uma variável não tiver conteúdo, você usa o valor da outra..

 

Exemplo:

<%
'inicio
if objXML.getElementsByTagName("dhEmi") <> "" then
set dtEmissao = objXML.getElementsByTagName("dhEmi")
 else
set dtEmissao = objXML.getElementsByTagName("dEmi")
 End if
%>

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

com um if também vc pode verificar se caso veio dEmi ou dhEmi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi.

 

Quando você tenta ler a variável e ela não existe, dá erro?

 

Caso não der erro, você pode tentar usar o meu exemplo acima.

 

Outra coisa, você sabe o que determina se a variável virá com nome de dEmi ou dhEmi? Se vc souber, fica mais fácil ainda.

 

No aguardo!

Fábio!

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique antes qual variável esta vindo, tentando ler as mesma, uma retornar falso, já sabe qua a outra existe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabio, se tag não existe o sistema da erro dizendo que não existe aquela tag dentro do xml.

 

Xan, como vou verificar se qual variável esta vindo?

 

Não seria mais fácil eu editar o arquivo xml e trocar a tag dhEmi para dEmi? Assim eu não teria problemas. Todos os arquivos que eu fosse subir ele ia verificar se existe a tag dhEmi e se tiver altera ela para dEmi.

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cai na mesma.

 

Se for fazer a verificacao para trocar a tag, entao faca direto.

 

Solucao.

 

Leia o xml por inteiro e ao inves de response.write na tag, veja se o nome é o que quer, se sim, coloque uma var = sim se nao var = n

 

E depois no if que falaraM acima vc faz

 

Var é igual s

 

Pega uma taG, se n pega outra.

 

Ta facil facil resolver isso

Compartilhar este post


Link para o post
Compartilhar em outros sites


If .......

 

set dtEmissao = objXML.getElementsByTagName("dEmi")

 

Escreve dados dEmi

 

Else

 

set dtEmissao = objXML.getElementsByTagName("dhEmi")

 

Escreve dados dhEmi

 

End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Gilberto.

 

Precisa verificar com o programador do site que retorna o XML o motivo de existir duas variáveis com nomes distintos, e como você faz para saber qual delas será retornada.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode-se fazer uma verificação, como falei procurar pela variável se = true usa senão usa a outra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Xanburzum.

No caso ficaria assim:

<%
'inicio
if objXML.getElementsByTagName("dhEmi") = true then
set dtEmissao = objXML.getElementsByTagName("dhEmi")
 else
set dtEmissao = objXML.getElementsByTagName("dEmi")
 End if
%>

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Fábio,

 

Foi o que já sugeri para ele no Post #11 mas ele diz que não deu.

 

Estranho....

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.