2008-10-27 47 views
32

我正在使用.NET的XmlReader使用循環解析XML文件:XmlReader - 自閉元素不會觸發EndElement事件?

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

我在想,如果這是正常的,下面的XML代碼不會產生一些結束元素節點?請注意在/>之前缺失的空間,但我不認爲這是問題所在。

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

是否有不同的NodeType或屬性來表示自閉元素?

回答

53

不,您通過查看XmlReader.IsEmptyElement來檢查它。

在文檔該屬性:

甲對應的結束元素節點不是空元件產生 。

+1

當我目前的`NodeType`爲`StartElement`時,我該如何區分``和``之間的區別?對於這兩種情況,「IsEmptyElement」都是「true」。 – 2016-08-15 17:52:21