XmlReader.IsEmptyElement 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當在導出類別中覆寫時,會得到一個值,表示目前節點是否為空元素(例如, <MyElement/>)。
public:
abstract property bool IsEmptyElement { bool get(); };
public abstract bool IsEmptyElement { get; }
member this.IsEmptyElement : bool
Public MustOverride ReadOnly Property IsEmptyElement As Boolean
屬性值
true若當前節點為元素(NodeType等XmlNodeType.Element於),且以 結尾/>;否則,。 false
例外狀況
在先前非同步操作結束前,會呼叫一個 XmlReader 方法。 此時, InvalidOperationException 會拋出「非同步操作已進行中」的訊息。
範例
以下範例顯示每個元素的文字內容。
while (reader.Read()) {
if (reader.IsStartElement()) {
if (reader.IsEmptyElement)
{
Console.WriteLine("<{0}/>", reader.Name);
}
else {
Console.Write("<{0}> ", reader.Name);
reader.Read(); // Read the start tag.
if (reader.IsStartElement()) // Handle nested elements.
Console.Write("\r\n<{0}>", reader.Name);
Console.WriteLine(reader.ReadString()); //Read the text content of the element.
}
}
}
While reader.Read()
If reader.IsStartElement() Then
If reader.IsEmptyElement Then
Console.WriteLine("<{0}/>", reader.Name)
Else
Console.Write("<{0}> ", reader.Name)
reader.Read() ' Read the start tag.
If reader.IsStartElement() Then ' Handle nested elements.
Console.Write(vbCr + vbLf + "<{0}>", reader.Name)
End If
Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
End If
End If
End While
範例中使用檔案 elems.xml,作為輸入。
<book>
<title>Pride And Prejudice</title>
<price>19.95</price>
<misc/>
</book>
備註
這個特性讓你能判斷以下差異:
<item num="123"/> (IsEmptyElement 是 true)。
<item num="123"></item> (IsEmptyElement 是 false,但元素內容為空)。
空元素不會產生對應 EndElement 節點。
若因結構驗證而加入預設內容, IsEmptyElement 仍會回傳 true。 這與該元素是否有預設值無關。 換句話說,就是 IsEmptyElement 簡單地報告來源文件中的元素是否帶有終點元素標籤。