XmlReader.IsEmptyElement 属性

定义

当在派生类中被重写时,获取一个值,该值指示当前节点是否为空元素(例如 <MyElement/>)。

public:
 abstract property bool IsEmptyElement { bool get(); };
public abstract bool IsEmptyElement { get; }
member this.IsEmptyElement : bool
Public MustOverride ReadOnly Property IsEmptyElement As Boolean

属性值

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

适用于