다음을 통해 공유


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에 있는 경우 호출은 호출 Skip Read과 동일합니다.

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

이 메서드는 올바른 형식의 XML을 확인합니다.

판독기인 XmlValidatingReader경우 이 메서드는 건너뛴 콘텐츠의 유효성도 검사합니다.

구현은 XmlReader 메서드가 외부 엔터티를 Skip 확장할지 여부를 결정합니다. 다음 표에서는 다양한 유형의 XmlReader 개체에 대해 외부 엔터티가 확장되는지 여부를 설명합니다.

XmlReader 형식 외부 엔터티 확장
XmlTextReader 아니요.
XmlReader 텍스트 데이터를 읽는 메서드에서 Create 만든 인스턴스입니다. 아니요.
XmlReader 이진 데이터를 읽는 메서드에서 Create 만든 인스턴스입니다. 해당 사항 없음
메서드에서 만든 인스턴스의 유효성을 검사하는 XmlReader 스키마입니다 Create . 예.
XmlValidatingReader 예.
XmlReader 개체에서 반환된 인스턴스입니다 XPathNavigator . 해당 사항 없음
XmlNodeReader 아니요.
XmlReader 인스턴스가 다른 XmlReader 인스턴스를 중심으로 래핑되었습니다. 기본 XmlReader의 구현에 따라 달라집니다. Skip(기본 XmlReader 의 메서드가 호출됩니다).

이 메서드의 비동기 버전은 다음을 참조하세요 SkipAsync.

적용 대상