XmlReader.ReadToDescendant Метод

Определение

Переводит XmlReader к следующему сопоставленному элементу-потомку.Advances the XmlReader to the next matching descendant element.

Перегрузки

ReadToDescendant(String, String)

Переводит XmlReader к следующему элементу-потомку с указанным локальным именем и URI пространства имен.Advances the XmlReader to the next descendant element with the specified local name and namespace URI.

ReadToDescendant(String)

Переводит XmlReader к следующему сопоставленному элементу-потомку с указанным проверенным именем.Advances the XmlReader to the next descendant element with the specified qualified name.

ReadToDescendant(String, String)

Переводит XmlReader к следующему элементу-потомку с указанным локальным именем и URI пространства имен.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

Локальное имя элемента, на который следует переместиться.The local name of the element you wish to move to.

namespaceURI
String

URI пространства имен элемента, на который следует переместиться.The namespace URI of the element you wish to move to.

Возвращаемое значение

Boolean

true, если найден сопоставленный элемент-потомок; в противном случае — false.true if a matching descendant element is found; otherwise false. Если сопоставленный дочерний элемент не найден, средство чтения XmlReader позиционируется на закрывающем теге (NodeType является XmlNodeType.EndElement) родительского элемента.If a matching child element is not found, the XmlReader is positioned on the end tag (NodeType is XmlNodeType.EndElement) of the element.

Если средство чтения XmlReader не размещено на элементе при вызове метода ReadToDescendant(String, String), последний возвращает значение 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)

Переводит 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

Полное имя элемента, на который следует переместиться.The qualified name of the element you wish to move to.

Возвращаемое значение

Boolean

true, если найден сопоставленный элемент-потомок; в противном случае — false.true if a matching descendant element is found; otherwise false. Если сопоставленный дочерний элемент не найден, средство чтения XmlReader позиционируется на закрывающем теге (NodeType является XmlNodeType.EndElement) родительского элемента.If a matching child element is not found, the XmlReader is positioned on the end tag (NodeType is XmlNodeType.EndElement) of the element.

Если средство чтения XmlReader не размещено на элементе при вызове метода ReadToDescendant(String), последний возвращает значение 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.

Примеры

В следующем примере выполняется анализ второго узла книги.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>

Применяется к