web-dev-qa-db-ja.com

XmlReader-自己終了要素はEndElementイベントを発生させませんか?

.NETでXmlReaderを使用して、ループを使用して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またはプロパティはありますか?

36
Vincent

いいえ、 XmlReader.IsEmptyElement を見て確認します。

そのプロパティのドキュメント:

空の要素に対して、対応するEndElementノードは生成されません。

59
Jon Skeet