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 "비동기 작업이 이미 진행 중입니다."라는 메시지와 함께 throw됩니다.

예제

다음 예제에서는 두 번째 책 노드에서 시작하는 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.

적용 대상