LER XML NFSE
Olá pessoal, bom dia!
Tenho um problema que é com a leitura de um arquivo de retorno NFSe padrão GINFES.
N?o existe libera??o v?lida para o n?mero de Nota Fiscal informado
N?o existe libera??o v?lida para o n?mero de Nota Fiscal informado
Usando a versão do Microsoft XML, v6.0 ele não lê a tag que preciso, que é a tag da mensagem (ns2:Mensagem)
Se eu troco a versão pra Microsoft XML, v3.0 ele já faz a leitura corretamente. Não sei oq muda entre uma versão e outra que faz com que dê erro em uma e certo na outra. Não sei se tenho que trocar a forma de fazer a leitura quando uso a versão 6.0
Private Function retornaTagXML(strXML As String, TagMae As String, SubTag As String) As String
On Error Resume Next
retornaTagXML = ""
Dim XML As DOMDocument60, objNode As IXMLDOMNode, objNodeList As IXMLDOMNodeList
Set XML = New DOMDocument60
XML.async = False
strXML = "C:\Administrador Eletrônico\NFSe\57570213\Retornos
fse-1-res-loterps-.xml"
If XML.loadXML(strXML) Then
' *** Tentar pegar o strCampoXML
Set objNodeList = XML.getElementsByTagName(TagMae & "//" & SubTag)
Set objNode = objNodeList.nextNode
Dim sLeitura As String
sLeitura = objNode.Text
If Len(Trim(sLeitura)) > 0 Then 'CONSEGUI LER O XML NODE
retornaTagXML = sLeitura
End If
Else
MsgBox "Não foi possível abrir o arquivo XML da NFSe especificada para Leitura.", vbCritical, "Erro"
End If
End Function
essa é a função que uso pra fazer a leitura do arquivo XML. Essa é a que da o erro com a versão 6.0 do Microsoft XML DOM
Outra coisa que queria resolver é como converter esses caracteres especiais no arquivo de retorno em caracteres normais e legíveis
N?o existe libera??o v?lida para o n?mero de Nota Fiscal informado
Desde já grato pela atenção de todos!
Dárcio Assis
Tenho um problema que é com a leitura de um arquivo de retorno NFSe padrão GINFES.
N?o existe libera??o v?lida para o n?mero de Nota Fiscal informado
N?o existe libera??o v?lida para o n?mero de Nota Fiscal informado
Usando a versão do Microsoft XML, v6.0 ele não lê a tag que preciso, que é a tag da mensagem (ns2:Mensagem)
Se eu troco a versão pra Microsoft XML, v3.0 ele já faz a leitura corretamente. Não sei oq muda entre uma versão e outra que faz com que dê erro em uma e certo na outra. Não sei se tenho que trocar a forma de fazer a leitura quando uso a versão 6.0
Private Function retornaTagXML(strXML As String, TagMae As String, SubTag As String) As String
On Error Resume Next
retornaTagXML = ""
Dim XML As DOMDocument60, objNode As IXMLDOMNode, objNodeList As IXMLDOMNodeList
Set XML = New DOMDocument60
XML.async = False
strXML = "C:\Administrador Eletrônico\NFSe\57570213\Retornos
fse-1-res-loterps-.xml"
If XML.loadXML(strXML) Then
' *** Tentar pegar o strCampoXML
Set objNodeList = XML.getElementsByTagName(TagMae & "//" & SubTag)
Set objNode = objNodeList.nextNode
Dim sLeitura As String
sLeitura = objNode.Text
If Len(Trim(sLeitura)) > 0 Then 'CONSEGUI LER O XML NODE
retornaTagXML = sLeitura
End If
Else
MsgBox "Não foi possível abrir o arquivo XML da NFSe especificada para Leitura.", vbCritical, "Erro"
End If
End Function
essa é a função que uso pra fazer a leitura do arquivo XML. Essa é a que da o erro com a versão 6.0 do Microsoft XML DOM
Outra coisa que queria resolver é como converter esses caracteres especiais no arquivo de retorno em caracteres normais e legíveis
N?o existe libera??o v?lida para o n?mero de Nota Fiscal informado
Desde já grato pela atenção de todos!
Dárcio Assis
Já consegui resolver... só declarar como tipo "Object"
Ao invés de declarar
Dim XML As DOMDocument60
Set XML = New DOMDocument60
é só eu declarar
Dim XMLDoc As Object
Set XMLDoc = CreateObject("Microsoft.XMLDOM")
Assim pode estar instanciado qq versão do DOM XML, pode ser o 3.0, 4.0, 5.0 ou 6.0 que funciona e faz a leitura sem erro.
É pq eu precisava instanciar a versão 6.0, que a que não estava fazendo a leitura correta do XML. E eu precisava dela pq essa versão é que conseguia gravar o XML de retorno que vem da GINFES no padrão ISO-8859-1
Ao invés de declarar
Dim XML As DOMDocument60
Set XML = New DOMDocument60
é só eu declarar
Dim XMLDoc As Object
Set XMLDoc = CreateObject("Microsoft.XMLDOM")
Assim pode estar instanciado qq versão do DOM XML, pode ser o 3.0, 4.0, 5.0 ou 6.0 que funciona e faz a leitura sem erro.
É pq eu precisava instanciar a versão 6.0, que a que não estava fazendo a leitura correta do XML. E eu precisava dela pq essa versão é que conseguia gravar o XML de retorno que vem da GINFES no padrão ISO-8859-1
Tópico encerrado , respostas não são mais permitidas