LEITURA DE XML

LEANDRO 11/07/2012 10:28:39
#405847
Bom Dia a Todos.

recebo um xml de um webservice, e o coloco em uma varivel string, depois eu o transformo em um xml

Dim teste As String = System.Text.Encoding.ASCII.GetString(bytRetData)
Dim oXml As New Xml.XmlDocument

Dim strOrderNumber As String
oXml.LoadXml(teste)

até ai tudo bem, porem eu preciso pegar um texto desse xml
strOrderNumber = oXml.FirstChild.Item([Ô]/env:Envelope/env:Header/wsa:MessageID[Ô]).InnerText.ToString

mas me da um erro

An unhandled exception of type [ô]System.NullReferenceException[ô] occurred in WindowsApplication1.exe

Additional information: Object reference not set to an instance of an object.

nao sei o que fazer para arrumar isso, e nem aonde estou errando
KERPLUNK 11/07/2012 10:52:12
#405849
Resposta escolhida
1 - XML não é texto, é objeto serializado.
2 - O seu erro é que está tentando transformar em string um valor que está null
O correto seria algo como:
If oXml.FirstChild.Item([Ô]/env:Envelope/env:Header/wsa:MessageID[Ô]).InnerText <> Nothing Then
strOrderNumber = oXml.FirstChild.Item([Ô]/env:Envelope/env:Header/wsa:MessageID[Ô]).InnerText.ToString
else
strOrderNumber = [Ô][Ô]
End if

Agora considere seriamente em mudar sua visão quanto à XML, não o veja como um simples arquivo texto e sim como um objeto mesmo, daí a importância do entendimento da orientação à objeto. Existem várias maneiras de serializar um XML em um objeto de mesma estrutura, o que facilita EM MUITO a manipulação e leitura do mesmo.
LEANDRO 11/07/2012 11:15:49
#405851
KERPLUNK
Obrigado pela resposta, porem não funcionou.

da o erro na primeira linha

An unhandled exception of type [ô]System.NullReferenceException[ô] occurred in WindowsApplication1.exe

Additional information: Object reference not set to an instance of an object

Infelizmente, foi solicitado para que eu fizesse assim, não tenho muita escolha para mudar essa rotina, ainda mais que tenho uma semana de trabalho.
ADHEL 11/07/2012 12:33:29
#405860
Há uns dias atras tive duvida parecida com a sua
Comigo tambem apareceu essa mensagem

No meu caso o erro estava nessa linha
txtFornecedor.Text = xmlDoc.SelectSingleNode([Ô]//nfe:infNFe/nfe:emit/nfe:xNome[Ô], ns).InnerText (Aqui estava assim ...([Ô]//nfe:infNFe/nfe:xNome[Ô], ns).InnerText

Abaixo como ficou (RESOLVIDO)

Dim xmlDoc As New XmlDocument
xmlDoc.Load(strNomeArquivo) LOCAL DO ARQUIVO

Dim ns As New XmlNamespaceManager(xmlDoc.NameTable)
ns.AddNamespace([Ô]nfe[Ô], [Ô]http://www.portalfiscal.inf.br/nfe[Ô])
txtFornecedor.Text = xmlDoc.SelectSingleNode([Ô]//nfe:infNFe/nfe:emit/nfe:xNome[Ô], ns).InnerText AQUI PEGO A RAZAO SOCIAL
txtEndereco.Text = xmlDoc.SelectSingleNode([Ô]//nfe:infNFe/nfe:emit/nfe:enderEmit/nfe:xLgr[Ô], ns).InnerText AQUI PEGO O ENDERECO

O meu tópico é esse
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=405652&varWorld=


Tópico encerrado , respostas não são mais permitidas