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) ,則呼叫 Skip 與呼叫 Read 相同。

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

這個方法會檢查格式正確的 XML。

如果讀取器是 XmlValidatingReader ,這個方法也會驗證略過的內容。

實作 XmlReader 會判斷方法是否會 Skip 展開外部實體。 下表說明外部實體是否針對各種物件類型 XmlReader 展開。

XmlReader 的類型 展開外部實體
XmlTextReader 否。
XmlReader 實例是由 Create 讀取文字資料的方法所建立。 否。
XmlReader 實例是由讀取二進位資料的方法所 Create 建立。 不適用。
驗證 方法所建立實例的 Create 架構 XmlReader 可以。
XmlValidatingReader 可以。
XmlReader 物件傳回的 XPathNavigator 實例。 不適用。
XmlNodeReader 否。
XmlReader 包裝在另一個 XmlReader 實例周圍的實例。 取決於基礎 XmlReader 的實作。 Skip (基礎 XmlReader 上的 方法稱為) 。

如需這個方法的非同步版本,請參閱 SkipAsync

適用於