SELECIONAR TAG NO XML
Private Function LerNode(caminho As String) As String
Try
Dim Item As XmlNodeList
Item = DOCXml.SelectNodes([Ô]/[Ô] & caminho)
Return Item.Item(0).InnerText
Catch
Return [Ô][Ô]
End Try
End Function
DOCXml.Load(Arquivo)
Console.WriteLine(LerNode([Ô]retEnviNFe[Ô]))
Console.WriteLine(LerNode([Ô]retEnviNFe/tpAmb[Ô]))
Console.WriteLine(LerNode([Ô]retEnviNFe/xMotivo[Ô]))
Console.WriteLine(LerNode([Ô]retEnviNFe/infRec[Ô]))
Console.WriteLine(LerNode([Ô]retEnviNFe/infRec/nRec[Ô]))
caros Amigos,
Como faço para esse function acima funcionar? usei algo parecido no vb6 e funcionou perfeitamente.. já no vbnet tentei inumeras vezes e nada.
desde já agradeço
Try
Dim Item As XmlNodeList
Item = DOCXml.SelectNodes([Ô]/[Ô] & caminho)
Return Item.Item(0).InnerText
Catch
Return [Ô][Ô]
End Try
End Function
DOCXml.Load(Arquivo)
Console.WriteLine(LerNode([Ô]retEnviNFe[Ô]))
Console.WriteLine(LerNode([Ô]retEnviNFe/tpAmb[Ô]))
Console.WriteLine(LerNode([Ô]retEnviNFe/xMotivo[Ô]))
Console.WriteLine(LerNode([Ô]retEnviNFe/infRec[Ô]))
Console.WriteLine(LerNode([Ô]retEnviNFe/infRec/nRec[Ô]))
caros Amigos,
Como faço para esse function acima funcionar? usei algo parecido no vb6 e funcionou perfeitamente.. já no vbnet tentei inumeras vezes e nada.
desde já agradeço
Posta um trecho do conteúdo do arquivo XML.
<retEnviNFe versao=[Ô]2.00[Ô]><tpAmb xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>2</tpAmb><verAplic xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>SP_NFE_PL_006h</verAplic><cStat xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>103</cStat><xMotivo xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>Lote recebido com sucesso</xMotivo><cUF xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>35</cUF><dhRecbto xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>2011-06-16T17:01:04</dhRecbto><infRec xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]><nRec>351000051493080</nRec><tMed>1</tMed></infRec></retEnviNFe>
Olá Tecla, acima o xml que gostaria de ler e obter os valores das tags.
Grato
Olá Tecla, acima o xml que gostaria de ler e obter os valores das tags.
Grato
Olá amigo já deu uma olhada nesse link?
http://www.oficinadanet.com.br/artigo/2214/lendo_xml_com_vb.net
http://www.oficinadanet.com.br/artigo/2214/lendo_xml_com_vb.net
Olá Luizcommo, obrigado pela ajuda.
testei o código mencionado no link,
ele permite buscar pelo nome da tag apenas no primeiro nivel. o os childs são retornados pelo numero da posição.
há alguma maneira de fazer a busca pelo nome da TAG no 2ª e 3ª nivel?
testei o código mencionado no link,
ele permite buscar pelo nome da tag apenas no primeiro nivel. o os childs são retornados pelo numero da posição.
há alguma maneira de fazer a busca pelo nome da TAG no 2ª e 3ª nivel?
tente
-------------------
Private Sub LeXml()
Dim objXml As New XmlDocument
Dim CaminhoXml As String = [Ô]C: este.xml[Ô]
objXml.Load(CaminhoXml)
Dim RazaoSocialRemetente As String = objXml.SelectSingleNode([Ô]//NomedaTag[Ô]).InnerText
Dim CodCidade As String = objXml.SelectSingleNode([Ô]//NomedaTag[Ô]).InnerText
Dim NumeroLote As String = objXml.SelectSingleNode([Ô]//NomedaTag[Ô]).InnerText
Dim CPFCNPJRemetente As String = objXml.SelectSingleNode([Ô]//NomedaTag[Ô]).InnerText
End Sub
-------------------
Private Sub LeXml()
Dim objXml As New XmlDocument
Dim CaminhoXml As String = [Ô]C: este.xml[Ô]
objXml.Load(CaminhoXml)
Dim RazaoSocialRemetente As String = objXml.SelectSingleNode([Ô]//NomedaTag[Ô]).InnerText
Dim CodCidade As String = objXml.SelectSingleNode([Ô]//NomedaTag[Ô]).InnerText
Dim NumeroLote As String = objXml.SelectSingleNode([Ô]//NomedaTag[Ô]).InnerText
Dim CPFCNPJRemetente As String = objXml.SelectSingleNode([Ô]//NomedaTag[Ô]).InnerText
End Sub
Pega este exemplo e veja se te ajuda
Repare que, para o código funcionar corretamente, as TextBoxes têm que ter, como padrão, seus nomes como TextBox mais o número
Exemplo: TextBox1, Textbox2, TextBox3... etc
Este exemplo é baseado no texto que você postou aqui no fórum
Desta forma, se o código lhe ajudou, adapte-o para seu programa, ok?
Espero ter ajudado.
Repare que, para o código funcionar corretamente, as TextBoxes têm que ter, como padrão, seus nomes como TextBox mais o número
Exemplo: TextBox1, Textbox2, TextBox3... etc
Este exemplo é baseado no texto que você postou aqui no fórum
Desta forma, se o código lhe ajudou, adapte-o para seu programa, ok?
Espero ter ajudado.
Olá Luiz, mais uma vez, obrigado.
esse codigo só traz o 1º Nivel.
console.write(objXml.SelectSingleNode([Ô]//retEnviNFe[Ô]).InnerText)
e da erro se eu colocar os nomes das demiaus TAGs.
tentativas: mas sem resultado
console.write(objXml.SelectSingleNode([Ô]//retEnviNFe/xmotivo[Ô]).InnerText)
console.write(objXml.SelectSingleNode([Ô]//xmotivo[Ô]).InnerText)
console.write(objXml.SelectSingleNode([Ô]//retEnviNFe:xmotivo[Ô]).InnerText)
esse codigo só traz o 1º Nivel.
console.write(objXml.SelectSingleNode([Ô]//retEnviNFe[Ô]).InnerText)
e da erro se eu colocar os nomes das demiaus TAGs.
tentativas: mas sem resultado
console.write(objXml.SelectSingleNode([Ô]//retEnviNFe/xmotivo[Ô]).InnerText)
console.write(objXml.SelectSingleNode([Ô]//xmotivo[Ô]).InnerText)
console.write(objXml.SelectSingleNode([Ô]//retEnviNFe:xmotivo[Ô]).InnerText)
Olá pegudo, obrigado pelo envio do projeto. achei bem interessante.. como montou... ja serviu pra tirar uma base pra outras coisas que precisava..
mais ainda tenho um problema.
não ha mesmo como fazer uma busca direta pelo nome da TAG?
vou explicar pq ainda insisto nisso... acabei de fazer o envio do lote da nfe, recebo o XML do recibo, preciso estrair o numero do recibo e anexar aos mes processos...
todos os codigos que fazem a busca usando LOOP, não me dá uma com presisão o valor da TAG.
como eu mensionei no poste de abertura deste... usei um codigo simples no VB6, que funcionava legal... poque no vbnet 2010 ele não roda?
mais ainda tenho um problema.
não ha mesmo como fazer uma busca direta pelo nome da TAG?
vou explicar pq ainda insisto nisso... acabei de fazer o envio do lote da nfe, recebo o XML do recibo, preciso estrair o numero do recibo e anexar aos mes processos...
todos os codigos que fazem a busca usando LOOP, não me dá uma com presisão o valor da TAG.
como eu mensionei no poste de abertura deste... usei um codigo simples no VB6, que funcionava legal... poque no vbnet 2010 ele não roda?
Cara eu te passei este exemplo dinâmico porque já aconteceu de um colega falar que o texto é padrão e não muda
aà depois de passar o projeto de exemplo, ele acaba falando que determinado campo ou caracter pode não estar presente.
Mas o código que você quer é este aà da figura
ele pega os valores pelo nome das tags
Espero ter ajudado
aà depois de passar o projeto de exemplo, ele acaba falando que determinado campo ou caracter pode não estar presente.
Mas o código que você quer é este aà da figura
ele pega os valores pelo nome das tags
Espero ter ajudado
pegudo... Funcionou perfeitamente...
Obrigado a todos .
Obrigado a todos .
Tópico encerrado , respostas não são mais permitidas