XmlReader - Самозакрывающийся элемент не запускает событие EndElement? - PullRequest
34 голосов
/ 27 октября 2008

Я использую XmlReader в .NET для анализа XML-файла с помощью цикла:

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

Мне было интересно, если это нормально, что следующий код XML не производит некоторые узлы EndElement? Пожалуйста, обратите внимание на пропущенный пробел перед />, но я не думаю, что это проблема.

<date month="November" year="2001"/>
<zone name="xml"/>

Существует ли другой NodeType или свойство для обозначения самозакрывающегося элемента?

1 Ответ

58 голосов
/ 28 октября 2008

Нет, вы проверяете это, глядя на XmlReader.IsEmptyElement .

В документах на это имущество:

Соответствующий узел EndElement не является генерируется для пустых элементов.

...