XmlReader.MoveToContent メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のノードがコンテンツ (空白でないテキスト、CDATA
、Element
、EndElement
、EntityReference
、または EndEntity
) ノードかどうかを確認します。 ノードがコンテンツ ノードでない場合、リーダーは、次のコンテンツ ノードまたはファイルの末尾までスキップします。 リーダーは、ProcessingInstruction
、DocumentType
、Comment
、Whitespace
、または SignificantWhitespace
の型のノードをスキップします。
public:
virtual System::Xml::XmlNodeType MoveToContent();
public virtual System.Xml.XmlNodeType MoveToContent ();
abstract member MoveToContent : unit -> System.Xml.XmlNodeType
override this.MoveToContent : unit -> System.Xml.XmlNodeType
Public Overridable Function MoveToContent () As XmlNodeType
戻り値
メソッドが見つけた現在のノードの NodeType。リーダーが入力ストリームの末尾に到達した場合は XmlNodeType.None
。
例外
入力ストリームで、正しくない XML が検出されました。
先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。 この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。
例
これは、ランダムな XML マークアップを中断せずにスキップできるコードを記述する場合に便利です。 たとえば、次のコードがあるとします。
if ( reader->MoveToContent() == XmlNodeType::Element &&
reader->Name->Equals( "price" ) )
{
_price = reader->ReadString();
}
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "price")
{
_price = reader.ReadString();
}
If reader.MoveToContent() = XmlNodeType.Element And reader.Name = "price" Then
_price = reader.ReadString()
End If
このコードでは、中断することなく次の入力を処理できます。
<price>123.4</price>
および
<?xml version="1.0"><!DOCTYPE price SYSTEM
"abc"><price>123.4</price>
および
<?xml version="1.0"><!DOCTYPE price SYSTEM "abc"
[<!ENTITY p
"123.4">]><price>&p;</price>
および
<!-- some test comment --><?processing
instruction?><price>123.4</price>
注釈
現在のノードが属性ノードの場合、このメソッドはリーダーを属性を所有する要素に戻します。
このメソッドの非同期バージョンについては、次を参照してください MoveToContentAsync。