Jump to content

Como obter o conteúdo de uma tag XML utilizando xPath - VB6


Postagens Recomendadas

  • Administradores

24baab24bbf5640af063c29aaa8e0cd484121cf0

Após diversas tentativas frustradas e complexas de utilizar xPath em VB6 , acabamos por desenvolver uma OCX gratuita onde é possível utilizar xPath de forma simplificada. Apesar de desenvolvida para ser utilizada em VB6 é possível utilizar em qualquer linguagem que consiga consumir uma OCX .

Como instalar:

Realize o download da OCX no final do post, movendo para a SysWow64 -> S.O. x64 ou System32 -> S.O. x86 e registre utilizando o regsvr32 . Logo após deve referenciar essa OCX em seu projeto( Project -> References -> xPathXML.ocx ).

Métodos disponiveis:

  • SelecionaNodeXML -> O método irá retornar a tag ou estrutura informada no primeiro parâmetro, com base no indice informado no segundo parâmetro, buscando estas informações no XML informado no terceiro parâmetro.
  • PercorreNodeXML -> O método irá retornar todas as ocorrências da tag ou estrutura informada no primeiro parâmetro, separadas pelo delimitador definido no segundo parâmetro, buscando estas informações no XML informado no terceiro parâmetro.

XML utilizado para testes:

<retEnviNFe versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">
    <tpAmb>2</tpAmb>
    <verAplic>GO3.0</verAplic>
    <cStat>103</cStat>
    <xMotivo>Lote recebido com sucesso</xMotivo>
    <cUF>52</cUF>
    <dhRecbto>2015-03-18T11:15:24-03:00</dhRecbto>
    <infRec>
        <nRec>521000010289495</nRec>
        <nRec>521000010289495</nRec>
        <nRec>521000010289495</nRec>
        <tMed>2</tMed>
    </infRec>
</retEnviNFe> 

SelecionaNodeXML exemplo de utilização:

 Dim XMLDoc As XPathXml.XPathXml
    Set XMLDoc = New XPathXml.XPathXml
    
    edtTesteTag.Text = XMLDoc.SelecionaNodeXml("nRec", 0, mmXml.Text) 

PercorreNodeXML exemplo de utilização:

  Dim XMLDoc As XPathXml.XPathXml
    Set XMLDoc = New XPathXml.XPathXml
    Dim i As Integer
    Dim vetor As Variant
    
    vetor = Split(XMLDoc.PercorreNodeXML("nRec", "|", mmXml.Text), "|")
    cbbTesteTag.Clear
    
    For i = LBound(vetor) To UBound(vetor)
        cbbTesteTag.AddItem vetor(i)
    Next 

Obtendo atributo de uma tag:

 Dim XMLDoc As XPathXml.XPathXml
    Set XMLDoc = New XPathXml.XPathXml
    
    edtTesteTag.Text = XMLDoc.SelecionaNodeXML("retEnviNFe/@versao", 0, mmXml.Text)
    ou
    edtTesteTag.Text = XMLDoc.SelecionaNodeXML("@versao", 0, mmXml.Text) 

OCX e Exemplo de utilização anexados logo abaixo.
https://tsdn.tecnospeed.com.br/files/render/a/d1bA1YExdQc/m/2Aal0HUq8WfaoMbCJXVjsCp1gbKWDONcJmsewKMB3YfVHfqBRMt4Z30DjOvQgJkfk6NI1dQW2Fg

https://tsdn.tecnospeed.com.br/files/render/a/d1bA1YExdQc/m/2Aal0HUq8WdpEWeYeAaOv23QOsnfWODue1p7fd688DUlyaYr3Kns7wlT7TWj6YHvLACX3jXbRv8 

 

Tópico originalmente criado por: @Jonathan Santos

 

Link to comment
Compartilhe em outros sites

  • 2 years later...

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...