XmlReader.ReadToDescendant XmlReader.ReadToDescendant XmlReader.ReadToDescendant XmlReader.ReadToDescendant Method

定義

XmlReader を次に一致する子孫要素に進めます。Advances the XmlReader to the next matching descendant element.

オーバーロード

ReadToDescendant(String, String) ReadToDescendant(String, String) ReadToDescendant(String, String) ReadToDescendant(String, String)

指定されたローカル名と名前空間 URI を使用して XmlReader を次の子孫要素に進めます。Advances the XmlReader to the next descendant element with the specified local name and namespace URI.

ReadToDescendant(String) ReadToDescendant(String) ReadToDescendant(String) ReadToDescendant(String)

指定された修飾名を使用して XmlReader を次の子孫要素に進めます。Advances the XmlReader to the next descendant element with the specified qualified name.

ReadToDescendant(String, String) ReadToDescendant(String, String) ReadToDescendant(String, String) ReadToDescendant(String, String)

指定されたローカル名と名前空間 URI を使用して XmlReader を次の子孫要素に進めます。Advances the XmlReader to the next descendant element with the specified local name and namespace URI.

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 String String String

移動先となる要素のローカル名。The local name of the element you wish to move to.

namespaceURI
String String String String

移動先となる要素の名前空間 URI。The namespace URI of the element you wish to move to.

戻り値

一致する子孫要素が見つかった場合は true。それ以外の場合は falsetrue if a matching descendant element is found; otherwise false. 一致する子要素が見つからない場合、要素の終了タグ (NodeTypeXmlNodeType.EndElement) に XmlReader が配置されます。If a matching child element is not found, the XmlReader is positioned on the end tag (NodeType is XmlNodeType.EndElement) of the element.

ReadToDescendant(String, String) が呼び出されたときに XmlReader が要素に配置されていない場合、このメソッドは false を返し、XmlReader の位置を変更しません。If the XmlReader is not positioned on an element when ReadToDescendant(String, String) was called, this method returns false and the position of the XmlReader is not changed.

例外

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。An XmlReader method was called before a previous asynchronous operation finished. この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

両方のパラメーター値が null です。Both parameter values are null.

ReadToDescendant(String) ReadToDescendant(String) ReadToDescendant(String) ReadToDescendant(String)

指定された修飾名を使用して XmlReader を次の子孫要素に進めます。Advances the XmlReader to the next descendant element with the specified qualified name.

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 String String String

移動先となる要素の修飾名。The qualified name of the element you wish to move to.

戻り値

一致する子孫要素が見つかった場合は true。それ以外の場合は falsetrue if a matching descendant element is found; otherwise false. 一致する子要素が見つからない場合、要素の終了タグ (NodeTypeXmlNodeType.EndElement) に XmlReader が配置されます。If a matching child element is not found, the XmlReader is positioned on the end tag (NodeType is XmlNodeType.EndElement) of the element.

ReadToDescendant(String) が呼び出されたときに XmlReader が要素に配置されていない場合、このメソッドは false を返し、XmlReader の位置を変更しません。If the XmlReader is not positioned on an element when ReadToDescendant(String) was called, this method returns false and the position of the XmlReader is not changed.

例外

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。An XmlReader method was called before a previous asynchronous operation finished. この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

パラメーターは空の文字列です。The parameter is an empty string.

次の例では、2番目の book ノードを解析します。The following example parses the second book node.

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を入力として使用します。The example uses the file, 2books.xml, as input.

<!--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>

適用対象