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