XmlReader.ReadToDescendant Methode

Definition

XmlReader Wechselt zum nächsten übereinstimmenden untergeordneten Element.

Überlädt

Name Beschreibung
ReadToDescendant(String, String)

XmlReader Wechselt zum nächsten untergeordneten Element mit dem angegebenen lokalen Namen und Namespace-URI.

ReadToDescendant(String)

XmlReader Wechselt zum nächsten untergeordneten Element mit dem angegebenen qualifizierten Namen.

ReadToDescendant(String, String)

XmlReader Wechselt zum nächsten untergeordneten Element mit dem angegebenen lokalen Namen und 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

Parameter

localName
String

Der lokale Name des Elements, zu dem Sie wechseln möchten.

namespaceURI
String

Der Namespace-URI des Elements, zu dem Sie wechseln möchten.

Gibt zurück

true wenn ein übereinstimmender untergeordnetes Element gefunden wird; andernfalls false. Wenn ein übereinstimmende untergeordnetes Element nicht gefunden wird, wird das XmlReader Element auf dem Endtag (NodeType ist XmlNodeType.EndElement) des Elements positioniert.

Wenn das XmlReader Element beim ReadToDescendant(String, String) Aufrufen nicht positioniert ist, gibt diese Methode zurück false und die Position der Elemente XmlReader wird nicht geändert.

Ausnahmen

Eine XmlReader Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall InvalidOperationException wird die Meldung "Ein asynchroner Vorgang wird bereits ausgeführt" ausgelöst.

Beide Parameterwerte sind null.

Gilt für:

ReadToDescendant(String)

XmlReader Wechselt zum nächsten untergeordneten Element mit dem angegebenen qualifizierten Namen.

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

Parameter

name
String

Der qualifizierte Name des Elements, zu dem Sie wechseln möchten.

Gibt zurück

true wenn ein übereinstimmender untergeordnetes Element gefunden wird; andernfalls false. Wenn ein übereinstimmende untergeordnetes Element nicht gefunden wird, wird das XmlReader Element auf dem Endtag (NodeType ist XmlNodeType.EndElement) des Elements positioniert.

Wenn das XmlReader Element beim ReadToDescendant(String) Aufrufen nicht positioniert ist, gibt diese Methode zurück false und die Position der Elemente XmlReader wird nicht geändert.

Ausnahmen

Eine XmlReader Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall InvalidOperationException wird die Meldung "Ein asynchroner Vorgang wird bereits ausgeführt" ausgelöst.

Der Parameter ist eine leere Zeichenfolge.

Beispiele

Im folgenden Beispiel wird der zweite Buchknoten analysiert.

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

Im Beispiel wird die Datei als 2books.xmlEingabe verwendet.

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

Gilt für: