XmlReader.MoveToContent メソッド

定義

現在のノードがコンテンツ (空白でないテキスト、CDATAElementEndElementEntityReference、または EndEntity) ノードかどうかを確認します。Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. ノードがコンテンツ ノードでない場合、リーダーは、次のコンテンツ ノードまたはファイルの末尾までスキップします。If the node is not a content node, the reader skips ahead to the next content node or end of file. リーダーは、ProcessingInstructionDocumentTypeCommentWhitespace、または SignificantWhitespace の型のノードをスキップします。It skips over nodes of the following type: ProcessingInstruction, DocumentType, Comment, Whitespace, or 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.NoneThe NodeType of the current node found by the method or XmlNodeType.None if the reader has reached the end of the input stream.

例外

入力ストリームで、正しくない XML が検出されました。Incorrect XML encountered in the input stream.

先行の非同期操作が完了する前に、XmlReader メソッドが呼び出されました。An XmlReader method was called before a previous asynchronous operation finished. この場合、「非同期操作が既に実行されています」というメッセージと共に InvalidOperationException がスローされます。In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

これは、ランダムな XML マークアップを中断せずにスキップできるコードを記述する場合に便利です。This is useful when you want to write code that can skip over random XML markup without breaking. たとえば、次のようなコードがあるとします。For example, suppose you have the following code:

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

このコードは、次の入力を中断せずに処理できます。This code can handle the following inputs without breaking:

<price>123.4</price>  

andand

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

andand

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

andand

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

注釈

現在のノードが属性ノードの場合、このメソッドは、リーダーを属性を所有する要素に戻します。If the current node is an attribute node, this method moves the reader back to the element that owns the attribute.

このメソッドの非同期バージョンについてはMoveToContentAsync、「」を参照してください。For the asynchronous version of this method, see MoveToContentAsync.

適用対象