XmlReader – L’elemento a chiusura automatica non triggers un evento EndElement?

Sto usando XmlReader in .NET per analizzare un file XML usando un loop:

while (xml.Read()) { switch xml.NodeType { case XmlNodeType.Element: //Do something case XmlNodeType.Text: //Do something case XmlNodeType.EndElement: //Do something } } 

Mi stavo chiedendo se fosse normale che il seguente codice XML non produca alcuni nodes EndElement? Si prega di notare lo spazio mancante prima del /> ma non penso che sia questo il problema.

   

Esiste un diverso NodeType o proprietà per indicare un elemento a chiusura automatica?

No, lo controlli guardando XmlReader.IsEmptyElement .

Nei documenti per quella proprietà:

Un nodo EndElement corrispondente non viene generato per elementi vuoti.