2011-11-16 15 views
16

Stavo controllando XmlNode.Attributes topic su MSDN sui metodi per verificare se esiste un attributo XmlNode dato il suo nome. Bene, non ci sono esempi su come controllare un oggetto.Come posso verificare se esiste un attributo in XmlAttributeCollection?

ho qualcosa di simile:

//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... 
    } 

Quindi, quale sarebbe il metodo migliore per verificare se un attributo esiste o non in ogni nodo? Va bene usare node.Attribute["IsCapital"]!=null?

risposta

32

Basta usare l'indicizzatore - se l'attributo non esiste, l'indicizzatore ritorna null:

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

Questo è documentato su XmlAttributeCollection.ItemOfProperty (String).

Il XmlAttribute con il nome specificato. Se l'attributo non esiste, questa proprietà restituisce null.

+0

@ JuniorMayhé - Obrigado! – Oded

+0

+1, per una presa eccezionale. –

+0

Sembra inapplicabile per gli attributi booleani che possono essere presenti ma non hanno alcun valore specificato. come '' – Ivan

Problemi correlati