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 5 anos, 2 meses atrás por Fabio Mitsueda.
-
AutorPosts
-
14 de novembro de 2019 às 09:14 #696Randerson VieiraParticipante
AMIGOS,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 MitsuedaMestreBoa 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:
Visual Basic123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354Sub LerXml(ByVal strFolderPath As String)'Declaração de variaveis de objeto para leitura do XMLDim xmlDoc As DOMDocumentDim xmlList As IXMLDOMNodeListDim xmlNode As IXMLDOMNode'Declaração de variaveis diversas para o códigoDim shtXml As WorksheetDim strXml As StringDim x, y, i As LongDim objPasta As FileDialog'Declaração de variaveis de retorno do XMLDim strNumerII As StringDim strDtaSitu As StringDim strNomSitu As String'Carregando PlanilhaSet shtXml = ThisWorkbook.Sheets("LerXml")'Atribuindo caminho do arquivo a variavelstrXml = strFolderPath'Carregando o objeto que irá representar o documento XMLSet xmlDoc = New DOMDocument'Carregando o arquivoxmlDoc.Load (strXml)'Capturando a ultima linha da planilhai = 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 produtosSet xmlList = xmlDoc.getElementsByTagName("li-simplificada")For Each xmlNode In xmlList'Capturando dados do xmlstrNumerII = GetNodeValue(xmlNode, "numero-li")strDtaSitu = GetNodeValue(xmlNode, "data-situacao")strNomSitu = GetNodeValue(xmlNode, "nome-situacao")'Carregando informações na planilhashtXml.Cells(i, 1).Value = strNumerIIshtXml.Cells(i, 2).Value = strDtaSitushtXml.Cells(i, 3).Value = strNomSitu'Incrementando a linhai = i + 1NextSet shtXml = NothingSet xmlList = NothingSet xmlNode = NothingSet xmlDoc = NothingEnd Sub -
AutorPosts
- Você deve fazer login para responder a este tópico.