Compartilhar via


XmlReader.ReadToDescendant Método

Definição

Avança o XmlReader para o próximo elemento descendente correspondente.

Sobrecargas

ReadToDescendant(String, String)

Avança o XmlReader para o próximo elemento descendente com o nome local e URI do namespace especificados.

ReadToDescendant(String)

Avança o XmlReader para o próximo elemento descendente com o nome qualificado especificado.

ReadToDescendant(String, String)

Origem:
XmlReader.cs
Origem:
XmlReader.cs
Origem:
XmlReader.cs

Avança o XmlReader para o próximo elemento descendente com o nome local e URI do namespace especificados.

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

Parâmetros

localName
String

O nome local do elemento para o qual você deseja mover.

namespaceURI
String

O URI do namespace do elemento para o qual você deseja mover.

Retornos

true se um elemento descendente correspondente for encontrado; caso contrário, false. Se um elemento descendente correspondente não for encontrado, o XmlReader será posicionado na marca final (NodeType é XmlNodeType.EndElement) do elemento .

Se o XmlReader não estiver posicionado em um elemento quando ReadToDescendant(String, String) foi chamado, esse método retornará false e a posição do XmlReader não será alterada.

Exceções

Um método XmlReader foi chamado antes do término de uma operação assíncrona anterior. Nesse caso, InvalidOperationException será gerado com a mensagem “Uma operação assíncrona já está em andamento”.

Ambos os valores de parâmetro são null.

Aplica-se a

ReadToDescendant(String)

Origem:
XmlReader.cs
Origem:
XmlReader.cs
Origem:
XmlReader.cs

Avança o XmlReader para o próximo elemento descendente com o nome qualificado especificado.

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

Parâmetros

name
String

O nome qualificado do elemento para o qual você deseja mover.

Retornos

true se um elemento descendente correspondente for encontrado; caso contrário, false. Se um elemento descendente correspondente não for encontrado, o XmlReader será posicionado na marca final (NodeType é XmlNodeType.EndElement) do elemento .

Se o XmlReader não estiver posicionado em um elemento quando ReadToDescendant(String) foi chamado, esse método retornará false e a posição do XmlReader não será alterada.

Exceções

Um método XmlReader foi chamado antes do término de uma operação assíncrona anterior. Nesse caso, InvalidOperationException será gerado com a mensagem “Uma operação assíncrona já está em andamento”.

O parâmetro é uma cadeia de caracteres vazia.

Exemplos

O exemplo a seguir analisa o segundo nó do livro.

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

O exemplo usa o arquivo , 2books.xmlcomo entrada.

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

Aplica-se a