XmlReader.Skip Метод

Определение

Пропускает дочерние элементы текущего узла.

public:
 virtual void Skip();
public virtual void Skip();
abstract member Skip : unit -> unit
override this.Skip : unit -> unit
Public Overridable Sub Skip ()

Исключения

Метод XmlReader был вызван до завершения предыдущей асинхронной операции. В этом случае InvalidOperationException создается сообщение "Асинхронная операция уже выполняется".

Примеры

В следующем примере анализируется XML-файл, начинающийся со второго узла книги.

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используется в качестве входных данных.

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

Комментарии

В следующем xml-вводе, если средство чтения размещается на <a> узле или любом из его атрибутов, вызывая Skip средство чтения на <b> узел.

Если средство чтения размещено на конечном узле (например <x> , на узле или текстовом узле abc), вызов совпадает с вызовом SkipRead.

<a name="bob" age="123">
 <x/>abc<y/>
</a>
<b>
...
</b>

Этот метод проверяет наличие хорошо сформированного XML.

Если средство чтения является XmlValidatingReaderсредством чтения, этот метод также проверяет пропущенное содержимое.

Реализация XmlReader определяет, будет ли Skip метод расширять внешние сущности. В следующей XmlReader таблице описывается, расширяются ли внешние сущности для различных типов объектов.

Тип XmlReader Расширяет внешние сущности
XmlTextReader No.
XmlReader экземпляр, созданный методом Create , который считывает текстовые данные. No.
XmlReader экземпляр, созданный методом, который считывает двоичные Create данные. Неприменимо.
Схема, проверяющая XmlReader экземпляр, созданный методом Create . Yes.
XmlValidatingReader Yes.
XmlReader экземпляр, возвращаемый XPathNavigator объектом. Неприменимо.
XmlNodeReader No.
XmlReader экземпляр, завернутый вокруг другого XmlReader экземпляра. Зависит от реализации базового XmlReader. (Вызывается Skip метод базового XmlReader элемента).

Сведения об асинхронной версии этого метода см. в разделе SkipAsync.

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