I am using XmlReader in .NET to parse an XML file using a loop:
while (xml.Read()) {
switch xml.NodeType {
case XmlNodeType.Element:
//Do something
case XmlNodeType.Text:
//Do something
case XmlNodeType.EndElement:
//Do something
}
}
I was wondering if it was normal that the following XML code does not produce some EndElement nodes? Please note the missing space before the /> but I don't think that's the problem.
<date month="November" year="2001"/>
<zone name="xml"/>
Is there a different NodeType or property to indicate a self-closing element?
No, you check it by looking at XmlReader.IsEmptyElement.
In the docs for that property:
A corresponding EndElement node is not generated for empty elements.