Como Analisar XML Usando VBA: Um Guia Passo a Passo

Analisar XML pode parecer intimidante à primeira vista, especialmente para aqueles que são novos no mundo do VBA. Se você se encontra precisando acessar valores de uma estrutura XML, como extrair coordenadas X e Y de um ponto, você veio ao lugar certo! Neste post, vamos explorar o processo de análise de XML em VBA para extrair dados de forma eficiente.

O Problema: Extração dos Valores de X e Y

Imagine que você possui uma string XML que se parece com isto:

<PointN xsi:type='typens:PointN' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xmlns:xs='http://www.w3.org/2001/XMLSchema'>
    <X>24.365</X>
    <Y>78.63</Y>
</PointN>

Você quer extrair os valores de X e Y para que possa armazená-los como variáveis inteiras em seu código VBA. Como novato em XML e VBA, surge a pergunta: Como eu faço isso?

A Solução: Usando MSXML2.DOMDocument

Felizmente, existe um método direto para analisar dados XML usando o objeto MSXML2.DOMDocument em VBA. Aqui estão os passos que você deve seguir:

Passo 1: Configurar Referência do MSXML2

Antes de começar a codificar, certifique-se de que você tenha referenciado a biblioteca Microsoft XML, v6.0 em seu editor VBA. Aqui está como:

  1. Abra seu editor VBA (Pressione ALT + F11).
  2. Clique em Ferramentas > Referências.
  3. Procure Microsoft XML, v6.0 e marque a caixa ao lado.
  4. Clique em OK.

Passo 2: Carregar a String XML

Você pode carregar sua string XML em um DOMDocument da seguinte forma:

Dim xmlDoc As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")

xmlDoc.LoadXML "<PointN xsi:type='typens:PointN' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema'><X>24.365</X><Y>78.63</Y></PointN>"

Passo 3: Acessar os Nós X e Y

Uma vez que a estrutura XML está carregada, você pode facilmente acessar os valores de X e Y usando o método selectSingleNode:

Dim xValue As Double
Dim yValue As Double

xValue = xmlDoc.SelectSingleNode("//X").Text
yValue = xmlDoc.SelectSingleNode("//Y").Text

Passo 4: Armazenar como Variáveis Inteiras

Se necessário, você pode converter esses valores em inteiros:

Dim xInt As Integer
Dim yInt As Integer

xInt = CInt(xValue)
yInt = CInt(yValue)

Resumo dos Passos

  1. Configure a referência ao MSXML2.
  2. Carregue sua string XML em um DOMDocument.
  3. Use selectSingleNode para obter os valores de X e Y.
  4. Converta os valores em inteiros, se necessário.

Conclusão

Analisar XML em VBA pode parecer complicado à primeira vista, mas com o objeto MSXML2.DOMDocument, isso se torna uma tarefa muito mais simples. Seguindo estes passos, você pode facilmente extrair valores de estruturas XML e utilizá-los em seu trabalho.

Para leitura e exploração adicionais, considere visitar os seguintes recursos:

Com este guia, você estará bem preparado para enfrentar a análise de XML em seus projetos VBA. Boa codificação!