要素の読み取り
更新 : November 2007
次の表では、XmlReader クラスで要素の処理のために提供されるメソッドとプロパティについて説明します。XmlReader が 1 つの要素上に位置した後、Name などのノードのプロパティには要素の値が反映されます。下に説明するメンバに加えて、XmlReader クラスの任意の一般メソッドとプロパティも要素の処理に使用できます。たとえば、ReadInnerXml メソッドを使用して要素のコンテンツを読むことができます。
メモ : |
---|
これらのメソッドには、最初に MoveToContent メソッドの呼び出しが含まれています。 |
メンバ名 |
説明 |
---|---|
現在のノードが開始タグまたは空要素タグであるかどうかを調べます。 |
|
現在のノードが要素であるか調べ、リーダーを次のノードに進めます。 |
|
現在のノードが終了タグであるか調べ、リーダーを次のノードに進めます。 |
|
テキストのみの要素を読みます。 |
|
XmlReader を指定した名前の次の子孫要素に進めます。 |
|
XmlReader を指定した名前の次の兄弟要素に進めます。 |
|
現在の要素が空要素タグを持つかどうか調べます。このプロパティにより、次のことが区別できます。
つまり、IsEmptyElement は単にソース ドキュメント中の要素に要素の終了タグがあるかどうかを報告します。 |
例
次のコードは、ReadStartElement メソッドと ReadString メソッドを使用して要素を読み取ります。
Using reader As XmlReader = XmlReader.Create("book3.xml")
' Parse the XML document. ReadString is used to
' read the text content of the elements.
reader.Read()
reader.ReadStartElement("book")
reader.ReadStartElement("title")
Console.Write("The content of the title element: ")
Console.WriteLine(reader.ReadString())
reader.ReadEndElement()
reader.ReadStartElement("price")
Console.Write("The content of the price element: ")
Console.WriteLine(reader.ReadString())
reader.ReadEndElement()
reader.ReadEndElement()
End Using
using (XmlReader reader = XmlReader.Create("book3.xml")) {
// Parse the XML document. ReadString is used to
// read the text content of the elements.
reader.Read();
reader.ReadStartElement("book");
reader.ReadStartElement("title");
Console.Write("The content of the title element: ");
Console.WriteLine(reader.ReadString());
reader.ReadEndElement();
reader.ReadStartElement("price");
Console.Write("The content of the price element: ");
Console.WriteLine(reader.ReadString());
reader.ReadEndElement();
reader.ReadEndElement();
}
次のコードは While ループを使用して要素を処理します。
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
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.
}
}
}