PASSAR CONTEUDO XML PARA VARIAVEL
No Visual Basic 6 usava o comando abaixo para passar todo conteúdo do arquivo XML para uma variável string.
Gostaria de Saber como faço isso no VB.NET.
Quero gravar o conteúdo do XML no banco de dados para ter mais uma segurança em caso de perda do arquivo poder gerar outro igual
Open [Ô]C:\NFE\Arquivo.XML[Ô] For Input As #1
cXML = Input$(LOF(1), 1)
Close #1
Gostaria de Saber como faço isso no VB.NET.
Quero gravar o conteúdo do XML no banco de dados para ter mais uma segurança em caso de perda do arquivo poder gerar outro igual
Open [Ô]C:\NFE\Arquivo.XML[Ô] For Input As #1
cXML = Input$(LOF(1), 1)
Close #1
http://www.macoratti.net/10/08/vbn_xml1.htm
JABA, obrigado, mas não localizei informação de como passar o conteúdo total do XML para variável string e gravar no banco de dados.
Dim xmlDoc As New XmlDocument
Dim sXML As String = [Ô]c:
fe\arquivo.xml[Ô]
xmlDoc.Load(sXML)
Com os comandos acima abro o XML.
Mas como pego todo conteúdo dentro do arquivo XML para gravar no banco de dados?
Dim xmlDoc As New XmlDocument
Dim sXML As String = [Ô]c:
fe\arquivo.xml[Ô]
xmlDoc.Load(sXML)
Com os comandos acima abro o XML.
Mas como pego todo conteúdo dentro do arquivo XML para gravar no banco de dados?
Com isso aqui, você lê todo o arquivo.
Se quiser somente o valor, tu pode fazer assim:
Dim arquivo As System.IO.File
Dim str As System.IO.StreamReader
str = IO.File.OpenText([Ô]C:\NFE\Arquivo.XML[Ô])
MsgBox(str.ReadToEnd.ToString)
Se quiser somente o valor, tu pode fazer assim:
Dim reader As XmlTextReader = New XmlTextReader([Ô]C:\NFE\Arquivo.XML[Ô])
Do While (reader.Read())
MsgBox(reader.Value)
Loop
O motivo de estar querendo fazer isso é para guardar o XML no banco de dados para ter como gerar novamente em caso de perda do arquivo XML original.
O código acima esta pegando o conteúdo do XML e fiz restante do código para gravar no banco de dados.
Porem, fui gerar um XML a partir do banco de dados e ao fazer a validação do XML gerado no site https://www.sefaz.rs.gov.br/nfe/nfe-val.aspx? esta dando inconsistência.
Será que não esta pegando o conteúdo do XML completo?
O código acima esta pegando o conteúdo do XML e fiz restante do código para gravar no banco de dados.
Porem, fui gerar um XML a partir do banco de dados e ao fazer a validação do XML gerado no site https://www.sefaz.rs.gov.br/nfe/nfe-val.aspx? esta dando inconsistência.
Será que não esta pegando o conteúdo do XML completo?
ATSILVA
Provavelmente o problema é o carácter quebra de linha que esta sendo salvo na string Xml.
A maneira mais simples de retornar o Xml em forma de string seria assim:
Dim xmlDoc As New XmlDocument
Dim pathXml As String = [Ô]D:\52151045453214002448550040000437141000437145.xml[Ô]
xmlDoc.Load(pathXml)
Dim strXml As String = xmlDoc.OuterXml
Assim não gera quebra de linha na string xml.
Citação:Porem, fui gerar um XML a partir do banco de dados e ao fazer a validação do XML gerado no site https://www.sefaz.rs.gov.br/nfe/nfe-val.aspx? esta dando inconsistência.
Será que não esta pegando o conteúdo do XML completo?
Provavelmente o problema é o carácter quebra de linha que esta sendo salvo na string Xml.
A maneira mais simples de retornar o Xml em forma de string seria assim:
Dim xmlDoc As New XmlDocument
Dim pathXml As String = [Ô]D:\52151045453214002448550040000437141000437145.xml[Ô]
xmlDoc.Load(pathXml)
Dim strXml As String = xmlDoc.OuterXml
Assim não gera quebra de linha na string xml.
Infelizmente continua não passando na validação do site https://www.sefaz.rs.gov.br/nfe/nfe-val.aspx?
Já o XML original passa sem problemas.
Já o XML original passa sem problemas.
ATSILVA
Você verificou se ao salvar o arquivo está salvando com quebra de linha ?
Pois testei um xml aqui carregando em uma string e validando no Sefaz do RS e passou blz.
Você verificou se ao salvar o arquivo está salvando com quebra de linha ?
Pois testei um xml aqui carregando em uma string e validando no Sefaz do RS e passou blz.
Como você salvou?
Por que estou salvando da forma abaixo.
Note que o conteúdo do arquivo XML esta na variável sXML.
Dim xmlDoc As New XmlDocument
xmlDoc.Load(sXML)
xmlDoc.Save([Ô]C:\NFe\XML\Arquivo.xml[Ô])
Por que estou salvando da forma abaixo.
Note que o conteúdo do arquivo XML esta na variável sXML.
Dim xmlDoc As New XmlDocument
xmlDoc.Load(sXML)
xmlDoc.Save([Ô]C:\NFe\XML\Arquivo.xml[Ô])
Para quem precisar salvei a variável com conteúdo do XML da forma abaixo e validou certinho no validador.
Dim sArquivo As New StreamWriter([Ô]C:\NFe\arquivonfe.xml[Ô])
sArquivo.Write(cXML)
sArquivo.Close()
sArquivo.Dispose()
Dim sArquivo As New StreamWriter([Ô]C:\NFe\arquivonfe.xml[Ô])
sArquivo.Write(cXML)
sArquivo.Close()
sArquivo.Dispose()
Tópico encerrado , respostas não são mais permitidas