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
只需报告源文档中的元素是否具有结束元素标记。