Visual Basic.NET - ¿Cómo validar si existe un atributo en un archivo XML?

 
Vista:
sin imagen de perfil

¿Cómo validar si existe un atributo en un archivo XML?

Publicado por Manuel Vázquez (3 intervenciones) el 11/08/2021 06:05:52
Hola a todos,

Tengo un código para leer y buscar atributos dentro de un archivo XML, sin embargo, cuando no existe dicho atributo manda un error y ya no puede continuar el programa, la pregunta es: ¿Cómo puedo validar si existen los atributos que busco de manera fija mediante el código en el archivo XML?.

Parte del código que utilizo y que es donde me manda el error al no encontrarlo es el siguiente:

Descuento = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/@Descuento", VarManager).InnerText

El error que me manda es el siguiente:

System.NullReferenceException: 'Referencia a objeto no establecida como instancia de un objeto.'

System.Xml.XmlNode.SelectSingleNode(...) devolvió Nothing.


De antemano agradezco el apoyo que puedan proporcionarme.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo validar si existe un atributo en un archivo XML?

Publicado por Giancarlo (488 intervenciones) el 11/08/2021 18:39:57
considerando que el archivo xml es texto, se me ocurre buscar ese valor antes de que prosigas

Pdt. puedes usar newtonsoft para convertir xml a clases
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 10 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Cómo validar si existe un atributo en un archivo XML?

Publicado por Horroroso (55 intervenciones) el 11/08/2021 22:09:30
Hola, te recomiendo hacer esto:

1
2
3
4
5
6
7
8
9
Dim Node as XmlNode = VarDocumentoXML.SelectSingleNode("/cfdi:Comprobante/@Descuento", VarManager)
 
If Not IsNothing(Node) then
     Descuento = Node.InnerText
End If
 
Saludos.
 
-Horroroso-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

¿Cómo validar si existe un atributo en un archivo XML?

Publicado por Ignacio (3 intervenciones) el 12/08/2021 06:43:11
Me fue de bastante ayuda ese código, mil gracias por tu apoyo. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar