Importar XML do Siscomex
Home › Fóruns › Fórum Excel VBA › Importar XML do Siscomex
Marcado: Importar XML do siscomex
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 6 anos, 3 meses atrás por
Fabio Mitsueda.
-
AutorPosts
-
14 de novembro de 2019 às 09:14 #696
Randerson Vieira
ParticipanteAMIGOS,bom dia!
Tenho um conhecimento superficial e desenvolvo pequenos trabalhos em vba e agora tentei desenvolver alguma instrução que permita ler um arquivo XML e coletar os dados de algumas tag’s e popular nas células da planilha. “Não conseguir”
Alguém poderia me ajudar com essa rotina que leia as tags: numero, data-situacao, nome-situacao, (orgao-anuente, nome-situacao-anuencia) sendo que esses já estão em um outro nível ou lista.A tag li-simplificada se repete até 1000 registros.
Segue o Codigo XML
<?xml version=”1.0″ encoding=”UTF-8″ ?>
<resposta-consulta-li versao=”1.0″ xmlns=”http://www.serpro.gov.br/liweb/schema/ResultadoConsultaLoteLiWeb.html” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.serpro.gov.br/liweb/schema/ResultadoConsultaLoteLiWeb.html ResultadoConsultaLoteLiWeb.xsd”>
<identificador-consulta>RET_CONS_LI</identificador-consulta>
<lista-mensagens-e-erros/>
<lista-li-simplificada>
<li-simplificada>
<numero>19/326598257-2</numero>
<data-registro>03/10/2019</data-registro>
<hora-registro>17:14:27</hora-registro>
<data-situacao>03/10/2019</data-situacao>
<hora-situacao>17:14:27</hora-situacao>
<codigo-situacao>01</codigo-situacao>
<nome-situacao>PARA ANALISE</nome-situacao>
<data-restricao-embarque/>
<data-validade-embarque/>
<data-validade-despacho/>
<numero-li-substituida>19/3103340-9</numero-li-substituida>
<numero-li-substitutiva/>
<lista-anuencias>
<anuencia>
<orgao-anuente>DECEX</orgao-anuente>
<codigo-situacao-anuencia>05</codigo-situacao-anuencia>
<nome-situacao-anuencia>DEFERIDA</nome-situacao-anuencia>
</anuencia>
<anuencia>
<orgao-anuente>INMETRO</orgao-anuente>
<codigo-situacao-anuencia>01</codigo-situacao-anuencia>
<nome-situacao-anuencia>PARA ANALISE</nome-situacao-anuencia>
</anuencia>
<anuencia>
<orgao-anuente>SUFRAMA</orgao-anuente>
<codigo-situacao-anuencia>05</codigo-situacao-anuencia>
<nome-situacao-anuencia>DEFERIDA</nome-situacao-anuencia>
</anuencia>
</lista-anuencias>
</li-simplificada>
<li-simplificada>
….
</li-simplificada>
<li-simplificada>
….
</li-simplificada>
</lista-li-simplificada>
</resposta-consulta-li>Tentei apreender com o tópico como “Importar arquivo Xml NF-e para Excel” mas não conseguir.
Um abraço a todos.
15 de novembro de 2019 às 18:40 #698Fabio Mitsueda
MestreBoa noite,
Na postagem vi que seu código não esta funcionando, o que pode ser são as referencias do seu projeto, entre no VBA Project depois em Ferramentas…>Referencia e procure por Microsoft XML, v6.0 ou v5.0 ou outra referencia disponível na sua biblioteca.
Utilizando o mesmo aquivo da postagem só substituir a função abaixo:
Sub LerXml(ByVal strFolderPath As String) 'Declaração de variaveis de objeto para leitura do XML Dim xmlDoc As DOMDocument Dim xmlList As IXMLDOMNodeList Dim xmlNode As IXMLDOMNode 'Declaração de variaveis diversas para o código Dim shtXml As Worksheet Dim strXml As String Dim x, y, i As Long Dim objPasta As FileDialog 'Declaração de variaveis de retorno do XML Dim strNumerII As String Dim strDtaSitu As String Dim strNomSitu As String 'Carregando Planilha Set shtXml = ThisWorkbook.Sheets("LerXml") 'Atribuindo caminho do arquivo a variavel strXml = strFolderPath 'Carregando o objeto que irá representar o documento XML Set xmlDoc = New DOMDocument 'Carregando o arquivo xmlDoc.Load (strXml) 'Capturando a ultima linha da planilha i = shtXml.Range("A1048576").End(xlUp).Row + 1 'Aqui vamos iniciar a ler os produtos da nota fiscal e carregar as linhas no excel conforme esses produtos Set xmlList = xmlDoc.getElementsByTagName("li-simplificada") For Each xmlNode In xmlList 'Capturando dados do xml strNumerII = GetNodeValue(xmlNode, "numero-li") strDtaSitu = GetNodeValue(xmlNode, "data-situacao") strNomSitu = GetNodeValue(xmlNode, "nome-situacao") 'Carregando informações na planilha shtXml.Cells(i, 1).Value = strNumerII shtXml.Cells(i, 2).Value = strDtaSitu shtXml.Cells(i, 3).Value = strNomSitu 'Incrementando a linha i = i + 1 Next Set shtXml = Nothing Set xmlList = Nothing Set xmlNode = Nothing Set xmlDoc = Nothing End Sub -
AutorPosts
- Você deve fazer login para responder a este tópico.
