現在のノードが空の要素 (<MyElement/> など) かどうかを示す値を取得します。
Overrides Public ReadOnly Property IsEmptyElement As Boolean
[C#]
public override bool IsEmptyElement {get;}
[C++]
public: __property bool get_IsEmptyElement();
[JScript]
public override function get IsEmptyElement() : Boolean;
プロパティ値
現在のノードが /> で終わる要素 (NodeType が XmlNodeType.Element に等しい) である場合は true 。それ以外の場合は false 。
解説
このプロパティを使用すると、次の 2 つの違いを確認できます。
<item num="123"/> (IsEmptyElement が true)。
<item num="123"> (IsEmptyElement が false)。
対応する EndElement ノードは、空の要素に対して生成されません。
使用例
[Visual Basic, C#, C++] 各要素のテキストの内容を表示する例を次に示します。
Imports System
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim txtreader As XmlTextReader = Nothing
Dim reader As XmlValidatingReader = Nothing
Try
'Implement the readers.
txtreader = New XmlTextReader("elems.xml")
reader = New XmlValidatingReader(txtreader)
'Parse the XML and display the text content of each of the elements.
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()) 'Handle nested elements.
Console.WriteLine()
Console.Write("<{0}>", reader.Name)
End If
Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
End If
End If
End While
Finally
If Not (reader Is Nothing) Then
reader.Close()
End If
End Try
End Sub 'Main
End Class 'Sample
[C#]
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
XmlTextReader txtreader = null;
XmlValidatingReader reader = null;
try
{
//Implement the readers.
txtreader = new XmlTextReader("elems.xml");
reader = new XmlValidatingReader(txtreader);
//Parse the XML and display the text content of each of the elements.
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.
}
}
}
}
finally
{
if (reader != null)
reader.Close();
}
}
} // End class
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlTextReader* txtreader = 0;
XmlValidatingReader* reader = 0;
try
{
//Implement the readers.
txtreader = new XmlTextReader(S"elems.xml");
reader = new XmlValidatingReader(txtreader);
//Parse the XML and display the text content of each of the elements.
while (reader->Read()){
if (reader->IsStartElement()){
if (reader->IsEmptyElement)
Console::WriteLine(S"<{0}/>",reader->Name);
else{
Console::Write(S"<{0}> ",reader->Name);
reader->Read(); //Read the start tag.
if (reader->IsStartElement()) //Handle nested elements.
Console::Write(S"\r\n<{0}>",reader->Name);
Console::WriteLine(reader->ReadString()); //Read the text content of the element.
}
}
}
}
__finally
{
if (reader != 0)
reader->Close();
}
}
この例では、入力として、 elems.xml というファイルを使用しています。
<book>
<title>Pride And Prejudice</title>
<price>19.95</price>
<misc/>
</book>
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン
をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
XmlValidatingReader クラス | XmlValidatingReader メンバ | System.Xml 名前空間