次の方法で共有


XmlReader.ReadToDescendant メソッド

定義

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

オーバーロード

ReadToDescendant(String, String)

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

ReadToDescendant(String)

指定された修飾名を使用して XmlReader を次の子孫要素に進めます。

ReadToDescendant(String, String)

ソース:
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) に配置されます。

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

例外

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。 この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。

両方のパラメーター値が null です。

適用対象

ReadToDescendant(String)

ソース:
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) に配置されます。

ReadToDescendant(String) が呼び出されたときに XmlReader が要素に配置されていない場合、このメソッドは 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>

適用対象