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"/> (IsEmptyElementtrue) です。

<item num="123"></item> (IsEmptyElementfalse、要素の内容は空ですが)。

対応する EndElement ノードは、空の要素に対して生成されません。

スキーマの検証のために既定のコンテンツが要素に追加された場合でも、 IsEmptyElement 返されます true。 要素に既定値があるかどうかには関係ありません。 言い換えると、 IsEmptyElement ソース ドキュメント内の要素に終了要素タグがあるかどうかを報告するだけです。

適用対象