XmlReader.ReadToDescendant メソッド

定義

XmlReaderを次の一致する子孫要素に進めます。

オーバーロード

名前 説明
ReadToDescendant(String, String)

指定したローカル名と名前空間 URI を持つ次の子孫要素に XmlReader を進めます。

ReadToDescendant(String)

指定した修飾名を持つ次の子孫要素に XmlReader を進めます。

ReadToDescendant(String, String)

ソース:
XmlReader.cs
ソース:
XmlReader.cs
ソース:
XmlReader.cs
ソース:
XmlReader.cs
ソース:
XmlReader.cs

指定したローカル名と名前空間 URI を持つ次の子孫要素に XmlReader を進めます。

public:
 virtual bool ReadToDescendant(System::String ^ localName, System::String ^ namespaceURI);
public virtual bool ReadToDescendant(string localName, string namespaceURI);
abstract member ReadToDescendant : string * string -> bool
override this.ReadToDescendant : string * string -> bool
Public Overridable Function ReadToDescendant (localName As String, namespaceURI As String) As Boolean

パラメーター

localName
String

移動先の要素のローカル名。

namespaceURI
String

移動先の要素の名前空間 URI。

返品

true 一致する子孫要素が見つかった場合。それ以外の場合は false。 一致する子孫要素が見つからない場合、 XmlReader は要素の終了タグ (NodeTypeXmlNodeType.EndElement) に配置されます。

XmlReaderが呼び出されたときにReadToDescendant(String, String)が要素に配置されていない場合、このメソッドはfalseを返し、XmlReaderの位置は変更されません。

例外

前の非同期操作が完了する前に、 XmlReader メソッドが呼び出されました。 この場合、"非同期操作は既に進行中です" というメッセージで InvalidOperationException がスローされます。

どちらのパラメーター値も null

適用対象

ReadToDescendant(String)

ソース:
XmlReader.cs
ソース:
XmlReader.cs
ソース:
XmlReader.cs
ソース:
XmlReader.cs
ソース:
XmlReader.cs

指定した修飾名を持つ次の子孫要素に XmlReader を進めます。

public:
 virtual bool ReadToDescendant(System::String ^ name);
public virtual bool ReadToDescendant(string name);
abstract member ReadToDescendant : string -> bool
override this.ReadToDescendant : string -> bool
Public Overridable Function ReadToDescendant (name As String) As Boolean

パラメーター

name
String

移動先の要素の修飾名。

返品

true 一致する子孫要素が見つかった場合。それ以外の場合は false。 一致する子孫要素が見つからない場合、 XmlReader は要素の終了タグ (NodeTypeXmlNodeType.EndElement) に配置されます。

XmlReaderが呼び出されたときにReadToDescendant(String)が要素に配置されていない場合、このメソッドはfalseを返し、XmlReaderの位置は変更されません。

例外

前の非同期操作が完了する前に、 XmlReader メソッドが呼び出されました。 この場合、"非同期操作は既に進行中です" というメッセージで InvalidOperationException がスローされます。

パラメーターは空の文字列です。

次の例では、2 番目のブック ノードを解析します。

using (XmlReader reader = XmlReader.Create("2books.xml")) {

  // Move the reader to the second book node.
  reader.MoveToContent();
  reader.ReadToDescendant("book");
  reader.Skip(); //Skip the first book.

  // Parse the file starting with the second book node.
  do {
     switch (reader.NodeType) {
        case XmlNodeType.Element:
           Console.Write("<{0}", reader.Name);
           while (reader.MoveToNextAttribute()) {
               Console.Write(" {0}='{1}'", reader.Name, reader.Value);
           }
           Console.Write(">");
           break;
        case XmlNodeType.Text:
           Console.Write(reader.Value);
           break;
        case XmlNodeType.EndElement:
           Console.Write("</{0}>", reader.Name);
           break;
     }
  }  while (reader.Read());
}
Using reader As XmlReader = XmlReader.Create("2books.xml")

  ' Move the reader to the second book node.
  reader.MoveToContent()
  reader.ReadToDescendant("book")
  reader.Skip() 'Skip the first book.
  ' Parse the file starting with the second book node.
  Do
    Select Case reader.NodeType
      Case XmlNodeType.Element
        Console.Write("<{0}", reader.Name)
        While reader.MoveToNextAttribute()
            Console.Write(" {0}='{1}'", reader.Name, reader.Value)
        End While
        Console.Write(">")
      Case XmlNodeType.Text
        Console.Write(reader.Value)
      Case XmlNodeType.EndElement
        Console.Write("</{0}>", reader.Name)
    End Select
  Loop While reader.Read()

End Using

この例では、 2books.xmlファイルを入力として使用します。

<!--sample XML fragment-->
<bookstore>
  <book genre='novel' ISBN='10-861003-324'>
    <title>The Handmaid's Tale</title>
    <price>19.95</price>
  </book>
  <book genre='novel' ISBN='1-861001-57-5'>
    <title>Pride And Prejudice</title>
    <price>24.95</price>
  </book>
</bookstore>

適用対象