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
ソース ドキュメント内の要素に終了要素タグがあるかどうかを報告するだけです。