次の方法で共有


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 がスローされます。

次の例では、2 番目のブック ノードから始まる 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>

注釈

リーダーがノードまたはその属性のいずれかに配置されている <a> 場合、次の XML 入力では、リーダー Skip をノードに <b> 配置します。

リーダーがリーフ ノード (ノードやテキスト ノードなど<x>) に既に配置されている場合、呼び出しは呼び出しSkipReadabcじです。

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

このメソッドは、整形式 XML をチェックします。

リーダーが 1 つの XmlValidatingReader場合、このメソッドはスキップされたコンテンツも検証します。

実装では XmlReader 、メソッドが外部エンティティを Skip 拡張するかどうかを決定します。 次の表では、さまざまな種類 XmlReader のオブジェクトに対して外部エンティティを展開するかどうかを示します。

XmlReader の型 外部エンティティを展開します
XmlTextReader いいえ。
XmlReader テキスト データを Create 読み取るメソッドによって作成されたインスタンス。 いいえ。
XmlReader バイナリ データを Create 読み取るメソッドによって作成されたインスタンス。 適用不可。
メソッドによって作成されたインスタンスを検証 XmlReader する Create スキーマ。 はい。
XmlValidatingReader はい。
XmlReader オブジェクトによって XPathNavigator 返されるインスタンス。 適用不可。
XmlNodeReader いいえ。
XmlReader インスタンスを別 XmlReader のインスタンスにラップします。 基になる XmlReaderの実装に依存します。 Skip(基になるXmlReaderメソッドが呼び出されます)。

このメソッドの非同期バージョンについては、次を参照してください SkipAsync

適用対象