英語で読む

次の方法で共有


XmlReader.MoveToContent メソッド

定義

現在のノードがコンテンツ (空白でないテキスト、CDATAElementEndElementEntityReference、または EndEntity) ノードかどうかを確認します。 ノードがコンテンツ ノードでない場合、リーダーは、次のコンテンツ ノードまたはファイルの末尾までスキップします。 リーダーは、ProcessingInstructionDocumentTypeCommentWhitespace、または SignificantWhitespace の型のノードをスキップします。

C#
public virtual System.Xml.XmlNodeType MoveToContent ();

戻り値

XmlNodeType

メソッドが見つけた現在のノードの NodeType。リーダーが入力ストリームの末尾に到達した場合は XmlNodeType.None

例外

入力ストリームで、正しくない XML が検出されました。

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。 この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。

これは、ランダムな XML マークアップを中断せずにスキップできるコードを記述する場合に便利です。 たとえば、次のコードがあるとします。

C#
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "price")
 {
    _price = reader.ReadString();
 }

このコードでは、中断することなく次の入力を処理できます。

XML
<price>123.4</price>

および

XML
<?xml version="1.0"><!DOCTYPE price SYSTEM
  "abc"><price>123.4</price>

および

XML
<?xml version="1.0"><!DOCTYPE price SYSTEM "abc"
  [<!ENTITY p
  "123.4">]><price>&p;</price>

および

XML
<!-- some test comment --><?processing
  instruction?><price>123.4</price>

注釈

現在のノードが属性ノードの場合、このメソッドはリーダーを属性を所有する要素に戻します。

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

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0