PEGAR TAG XML

 Tópico anterior Próximo tópico Novo tópico

PEGAR TAG XML

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#492200 - 12/01/2020 21:31:10

ATSILVA
SAO PAULO
Cadast. em:Março/2014


Última edição em 12/01/2020 21:33:00 por ATSILVA

Olá, preciso pegar o valor da TAG xMsg do XML da NFe do MS sendo que nem sempre essa TAG esta presente no XML, então antes preciso verificar se a tag existe para pegar seu valor.


PS: Essa tag fica no mesmo grupo da dhRecbto no arquivo XML.




Resposta escolhida #492201 - 13/01/2020 10:52:10

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


posta um xml com essa tag



#492202 - 13/01/2020 11:00:32

ATSILVA
SAO PAULO
Cadast. em:Março/2014


Última edição em 13/01/2020 11:02:12 por ATSILVA

Tenho o XML real do cliente, mas, como é um documento fiscal da loja não me sinto a vontade em disponibilizar na internet.
Peço desculpas, se conseguir pegar o campo dhRecbto ja vai ajudar, por que, no caso ele esta no mesmo grupo da xMsg e em teoria será só mudar o nome que vai pega-la também.

PS: Até consegui pegar o valor da TAG, mas, o problema é quando ela não existe.




#492203 - 13/01/2020 11:06:30

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


pega o xml editas os valores sejam quais for da indentidade do emissor e do cliente apague e poste



#492204 - 13/01/2020 11:21:03

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Última edição em 13/01/2020 11:27:19 por FABRICIOWEB

seria mais ou menos isso nao sei nao uso vb net

Imports System.Xml

Public Class Form1


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            Dim nota As String = ""
            If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
               nota = OpenFileDialog1.FileName
                Dim doc As XmlDocument = New XmlDocument()
                doc.Load(nota)
                Dim No As XmlNodeList = doc.GetElementsByTagName("prod")  muda aqui para onde esta a coleção de tag
                Dim nome As String = ""
                Dim ncm As String = ""
                Dim cfop As String = ""
                Dim ucom As String = ""
                Dim qcom As String = ""
                Dim vuncom As String = ""
                Dim vprod As String = ""
                Dim vuntrib As String = ""
                Dim barra As String = ""
                Dim xMsg As String = ""
                Dim yy As Integer = 0

                For Each book As XmlNode In No

                    For i As Integer = 0 To book.ChildNodes.Count - 1

                        Select Case book.ChildNodes.Item(i).Name
                            Case "cEAN"
                                barra = book.ChildNodes.Item(i).InnerXml
                            Case "xProd"
                                nome = book.ChildNodes.Item(i).InnerXml

                            Case "NCM"
                                ncm = book.ChildNodes.Item(i).InnerXml
                                MessageBox.Show(ncm)

                            Case "CFOP"
                                cfop = book.ChildNodes.Item(i).InnerXml
                                MessageBox.Show(cfop)
                            Case "uCom"
                                ucom = book.ChildNodes.Item(i).InnerXml
                                MessageBox.Show(ucom)
                            Case "qCom"
                                qcom = String.Format("{0:d}", (book.ChildNodes.Item(i).InnerXml))
                                MessageBox.Show(qcom)
                            Case "vUnCom"
                                vuncom = String.Format("{0:d}", book.ChildNodes.Item(i).InnerXml)
                                MessageBox.Show(vuncom)
                            Case "vProd"
                                vprod = String.Format("{0:d}", (book.ChildNodes.Item(i).InnerXml))
                                MessageBox.Show(vprod)
                            Case "vUnTrib"
                                vuntrib = String.Format("{0:d}", (book.ChildNodes.Item(i).InnerXml))
                                MessageBox.Show(vuntrib)
      
                        End Select
                    Next
                Next

                MessageBox.Show("Arquivo xml da Nota Fiscal lido com Sucesso!", "Aviso - Leitura do Arquivo", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

        Catch ex As Exception
        End Try
    End Sub
End Class


de cima  tags prod



acho que ficaria asssim



  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            Dim nota As String = ""
            If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
               nota = OpenFileDialog1.FileName
                Dim doc As XmlDocument = New XmlDocument()
                doc.Load(nota)
                Dim No As XmlNodeList = doc.GetElementsByTagName("dhRecbto")  
                Dim xMsg As String = ""
          

                For Each book As XmlNode In No

                    For i As Integer = 0 To book.ChildNodes.Count - 1

                        Select Case book.ChildNodes.Item(i).Name
                                Case "xMsg"
                                xMsg = book.ChildNodes.Item(i).InnerXml

                        End Select
                    Next
                Next

                MessageBox.Show("Arquivo xml da Nota Fiscal lido com Sucesso!", "Aviso - Leitura do Arquivo", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

        Catch ex As Exception
        End Try
    End Sub








#492205 - 13/01/2020 11:25:40

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
Não seria melhor Deserializar o XML e pegar o valor pelos atributos da classe ?



#492206 - 13/01/2020 11:27:06

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Citação:
:
Não seria melhor Deserializar o XML e pegar o valor pelos atributos da classe ?

Com toda certeza. Não entendo porque insistir em usar esses métodos tão arcaicos e não confiáveis.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#492207 - 13/01/2020 11:41:16

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Citação:
:
:
Não seria melhor Deserializar o XML e pegar o valor pelos atributos da classe ?
Com toda certeza. Não entendo porque insistir em usar esses métodos tão arcaicos e não confiáveis.

então poste como fazer assim como eu e outras pessoas que usam esse metodo iram aprender com sua resposta e nao vao mais usar o metodo arcaico para tal finalidade



#492208 - 13/01/2020 11:55:36

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Nossa, isso já foi postado aqui algumas dúzias de vezes, fiz um vídeo especialmente pra isso no meu canal.

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#492209 - 13/01/2020 12:05:31

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Citação:
:
Nossa, isso já foi postado aqui algumas dúzias de vezes, fiz um vídeo especialmente pra isso no meu canal.

obrigado, não tinha visto seu video ainda e nem aqui no forum irei ver o video



#492210 - 13/01/2020 12:06:47

ATSILVA
SAO PAULO
Cadast. em:Março/2014


Deu certo, obrigado a todos em especial ao FABRICIOWEB pelo esforço em ajudar.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ATSILVA em 13/01/2020 12:06:57