Udostępnij za pośrednictwem


XmlReader.ReadToDescendant Metoda

Definicja

XmlReader Przechodzi do następnego pasującego elementu podrzędnego.

Przeciążenia

ReadToDescendant(String, String)

XmlReader Przechodzi do następnego elementu podrzędnego z określoną lokalną nazwą i identyfikatorem URI przestrzeni nazw.

ReadToDescendant(String)

XmlReader Przechodzi do następnego elementu potomnego z określoną kwalifikowaną nazwą.

ReadToDescendant(String, String)

Źródło:
XmlReader.cs
Źródło:
XmlReader.cs
Źródło:
XmlReader.cs

XmlReader Przechodzi do następnego elementu podrzędnego z określoną lokalną nazwą i identyfikatorem URI przestrzeni nazw.

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

Parametry

localName
String

Lokalna nazwa elementu, do którego chcesz przejść.

namespaceURI
String

Identyfikator URI przestrzeni nazw elementu, do którego chcesz przejść.

Zwraca

true jeśli zostanie znaleziony pasujący element potomny; w przeciwnym razie false. Jeśli pasujący element potomny nie zostanie znaleziony, XmlReader element zostanie umieszczony na tagu końcowym (NodeType to XmlNodeType.EndElement) elementu.

Jeśli element XmlReader nie jest umieszczony w elemecie , gdy ReadToDescendant(String, String) został wywołany, ta metoda zwraca wartość false i pozycja elementu XmlReader nie zostanie zmieniona.

Wyjątki

Metoda XmlReader została wywołana przed zakończeniem poprzedniej operacji asynchronicznej. W takim przypadku InvalidOperationException jest zgłaszany komunikat "Operacja asynchroniczna jest już w toku".

Obie wartości parametrów to null.

Dotyczy

ReadToDescendant(String)

Źródło:
XmlReader.cs
Źródło:
XmlReader.cs
Źródło:
XmlReader.cs

XmlReader Przechodzi do następnego elementu potomnego z określoną kwalifikowaną nazwą.

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

Parametry

name
String

Kwalifikowana nazwa elementu, do którego chcesz przejść.

Zwraca

true jeśli zostanie znaleziony pasujący element potomny; w przeciwnym razie false. Jeśli pasujący element potomny nie zostanie znaleziony, XmlReader element zostanie umieszczony na tagu końcowym (NodeType to XmlNodeType.EndElement) elementu.

Jeśli element XmlReader nie jest umieszczony w elemecie , gdy ReadToDescendant(String) został wywołany, ta metoda zwraca wartość false i pozycja elementu XmlReader nie zostanie zmieniona.

Wyjątki

Metoda XmlReader została wywołana przed zakończeniem poprzedniej operacji asynchronicznej. W takim przypadku InvalidOperationException jest zgłaszany komunikat "Operacja asynchroniczna jest już w toku".

Parametr jest pustym ciągiem.

Przykłady

Poniższy przykład analizuje drugi węzeł książki.

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

W przykładzie użyto pliku , 2books.xmljako danych wejściowych.

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

Dotyczy