2011-11-16 41 views
16

Estaba comprobando XmlNode.Attributes topic en MSDN sobre los métodos para comprobar si existe un atributo XmlNode dado su nombre. Bueno, no hay una muestra sobre cómo verificar un artículo.¿Cómo puedo verificar si un atributo existe en XmlAttributeCollection?

tengo algo como:

//some code here... 

    foreach (XmlNode node in n.SelectNodes("Cities/City")) 
    { 
     //is there some method to check an attribute like 
     bool isCapital = node.Attributes.Exist("IsCapital"); 

     //some code here... 
    } 

Así que, ¿cuál sería el mejor método para comprobar si un atributo existe o no en cada nodo? ¿Está bien usar node.Attribute["IsCapital"]!=null?

Respuesta

32

sólo tiene que utilizar el indexador - si el atributo no existe, el indexador vuelve null:

bool isCapital = nodes.Attributes["IsCapital"] != null; 

Esto está documentado en XmlAttributeCollection.ItemOfProperty (String).

El XmlAttribute con el nombre especificado. Si el atributo no existe, esta propiedad devuelve null.

+0

@ JuniorMayhé - Obrigado! – Oded

+0

+1, para captura increíble. –

+0

Parece inaplicable para los atributos booleanos que pueden estar presentes pero no tienen un valor especificado. como '' – Ivan

Cuestiones relacionadas