Прочитать на английском

Поделиться через


XmlReader.IsEmptyElement Свойство

Определение

При переопределении в производном классе получает значение, указывающее, является ли текущий узел пустым элементом (например, <MyElement/>).

public abstract bool IsEmptyElement { get; }

Значение свойства

Boolean

trueЗначение , falseесли текущий узел является элементом (NodeTypeравноXmlNodeType.Element), который заканчивается />; в противном случае .

Исключения

Метод 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.
    }
  }
}

В этом примере файл elems.xmlиспользуется в качестве входных данных.

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

Комментарии

Это свойство позволяет определить разницу между:

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

<item num="123"></item> (IsEmptyElement имеет значение false, хотя содержимое элемента пусто).

Соответствующий EndElement узел не создается для пустых элементов.

Если содержимое по умолчанию добавлено в элемент из-за проверки схемы, IsEmptyElement возвращается true. Он не влияет на то, имеет ли элемент значение по умолчанию. Другими словами, просто сообщает, IsEmptyElement был ли элемент в исходном документе тегом конечного элемента.

Применяется к

Продукт Версии
.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
.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
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0