Jump to content

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


Recommended Posts

  • 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
Share on other sites

  • 2 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...