XmlReader.Skip メソッド
現在のノードの子をスキップします。
Public Overridable Sub Skip()
[C#]
public virtual void Skip();
[C++]
public: virtual void Skip();
[JScript]
public function Skip();
解説
次の XML 入力では、リーダーを <a>
ノードまたはその属性に配置した場合、 Skip を呼び出すとリーダーが <b>
ノードに配置されます。
リーダーが既にリーフ ノード (<x>
ノードやテキスト ノード abc
など) に配置されている場合、 Skip の呼び出しは、 Read の呼び出しと同じになります。
<a name="bob" age="123">
<x/>abc<y/>
</a>
<b>
...
</b>
このメソッドは、整形式の XML かどうかをチェックします。
リーダーが XmlValidatingReader の場合、このメソッドは、スキップした内容も検証します。
使用例
[Visual Basic, C#, C++] 2 番目の Book ノードから XML ファイルを解析する例を次に示します。
Imports System
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim reader As XmlTextReader = Nothing
Try
' Load the XmlTextReader.
reader = New XmlTextReader("2books.xml")
reader.WhitespaceHandling = WhitespaceHandling.None
' Move the reader to the second book node.
reader.MoveToContent()
reader.Read()
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()
Finally
If Not (reader Is Nothing) Then
reader.Close()
End If
End Try
End Sub
End Class
[C#]
using System;
using System.IO;
using System.Xml;
public class Sample {
public static void Main() {
XmlTextReader reader = null;
try {
// Load the XmlTextReader.
reader = new XmlTextReader("2books.xml");
reader.WhitespaceHandling = WhitespaceHandling.None;
// Move the reader to the second book node.
reader.MoveToContent();
reader.Read();
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());
}
finally {
if (reader != null)
reader.Close();
}
}
}
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main() {
XmlTextReader* reader = 0;
try {
// Load the XmlTextReader.
reader = new XmlTextReader(S"2books.xml");
reader->WhitespaceHandling = WhitespaceHandling::None;
// Move the reader to the second book node.
reader->MoveToContent();
reader->Read();
reader->Skip(); //Skip the first book.
// Parse the file starting with the second book node.
do {
switch (reader->NodeType)
{
case XmlNodeType::Element:
Console::Write(S"<{0}",reader->Name);
while (reader->MoveToNextAttribute()) {
Console::Write(S" {0}='{1}'", reader->Name, reader->Value);
}
Console::Write(S">");
break;
case XmlNodeType::Text:
Console::Write(reader->Value);
break;
case XmlNodeType::EndElement:
Console::Write(S"</{0}>", reader->Name);
break;
}
} while (reader->Read());
}
__finally {
if (reader != 0)
reader->Close();
}
}
この例では、入力として、 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>
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard