XmlReader.IsEmptyElement Propriedade

Definição

Quando substituído em uma classe derivada, obtém um valor que indica se o nó atual é um elemento vazio (por exemplo, <MyElement/>).

C#
public abstract bool IsEmptyElement { get; }

Valor da propriedade

true se o nó atual for um elemento (NodeType igual a XmlNodeType.Element) que terminará com />; caso contrário, false.

Exceções

Um método XmlReader foi chamado antes do término de uma operação assíncrona anterior. Nesse caso, InvalidOperationException será gerado com a mensagem “Uma operação assíncrona já está em andamento”.

Exemplos

O exemplo a seguir exibe o conteúdo de texto de cada elemento.

C#
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.
    }
  }
}

O exemplo usa o arquivo , elems.xmlcomo entrada.

XML
<book>
  <title>Pride And Prejudice</title>
  <price>19.95</price>
  <misc/>
</book>

Comentários

Essa propriedade permite determinar a diferença entre o seguinte:

<item num="123"/> (IsEmptyElement é true).

<item num="123"></item> (IsEmptyElement é false, embora o conteúdo do elemento esteja vazio).

Um nó correspondente EndElement não é gerado para elementos vazios.

Se o conteúdo padrão tiver sido adicionado a um elemento devido à validação do esquema, IsEmptyElement ainda retornará true. Ele não tem nenhuma influência sobre se o elemento tem ou não um valor padrão. Em outras palavras, IsEmptyElement simplesmente relata se o elemento no documento de origem tinha ou não uma marca de elemento final.

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0