PASSAR CONTEUDO XML PARA VARIAVEL

ATSILVA 17/07/2016 16:04:59
#464860
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
JABA 17/07/2016 16:53:03
#464861
http://www.macoratti.net/10/08/vbn_xml1.htm
ATSILVA 18/07/2016 21:10:20
#464917
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?
JABA 18/07/2016 22:42:58
#464924
Com isso aqui, você lê todo o arquivo.

        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
ATSILVA 19/07/2016 12:02:53
#464938
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?
ELUCIMAR 19/07/2016 12:23:32
#464939
Resposta escolhida
ATSILVA
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.
ATSILVA 19/07/2016 14:01:21
#464941
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.
ELUCIMAR 19/07/2016 16:09:39
#464945
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.
ATSILVA 19/07/2016 16:32:26
#464946
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[Ô])
ATSILVA 20/07/2016 14:44:44
#464970
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()
Tópico encerrado , respostas não são mais permitidas