XmlReader.ReadInnerXml XmlReader.ReadInnerXml XmlReader.ReadInnerXml XmlReader.ReadInnerXml Method

定義

派生クラスでオーバーライドされると、マークアップを含むすべての内容を文字列として読み取ります。When overridden in a derived class, reads all the content, including markup, as a string.

public:
 virtual System::String ^ ReadInnerXml();
public virtual string ReadInnerXml ();
abstract member ReadInnerXml : unit -> string
override this.ReadInnerXml : unit -> string
Public Overridable Function ReadInnerXml () As String

戻り値

現在のノード内の、マークアップを含むすべての XML の内容。All the XML content, including markup, in the current node. 現在のノードが子を持っていない場合は、空の文字列が返されます。If the current node has no children, an empty string is returned.

現在のノードが要素でも属性でもない場合は、空の文字列が返されます。If the current node is neither an element nor attribute, an empty string is returned.

例外

XML が整形式ではありませんでした。または、XML の解析中にエラーが発生しました。The XML was not well-formed, or an error occurred while parsing the XML.

先行の非同期操作が完了する前に、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."

次の例では、比較、ReadInnerXmlReadOuterXmlメソッド。The following example compares the ReadInnerXml and ReadOuterXml methods.

// Load the file and ignore all white space.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
using (XmlReader reader = XmlReader.Create("2books.xml")) {

  // Moves the reader to the root element.
  reader.MoveToContent();
 
  // Moves to book node.
  reader.Read(); 

  // Note that ReadInnerXml only returns the markup of the node's children
  // so the book's attributes are not returned.
  Console.WriteLine("Read the first book using ReadInnerXml...");
  Console.WriteLine(reader.ReadInnerXml());

  // ReadOuterXml returns the markup for the current node and its children
  // so the book's attributes are also returned.
  Console.WriteLine("Read the second book using ReadOuterXml...");
  Console.WriteLine(reader.ReadOuterXml());      

}
' Load the file and ignore all white space.
Dim settings As New XmlReaderSettings()
settings.IgnoreWhitespace = True
Using reader As XmlReader = XmlReader.Create("2books.xml")

  ' Moves the reader to the root element.
  reader.MoveToContent()
                
  ' Moves to book node.
  reader.Read()
                
  ' Note that ReadInnerXml only returns the markup of the node's children
  ' so the book's attributes are not returned.
  Console.WriteLine("Read the first book using ReadInnerXml...")
  Console.WriteLine(reader.ReadInnerXml())
                
  ' ReadOuterXml returns the markup for the current node and its children
  ' so the book's attributes are also returned.
  Console.WriteLine("Read the second book using ReadOuterXml...")
  Console.WriteLine(reader.ReadOuterXml())

End Using

この例では2books.xmlファイルを入力として。The example uses 2books.xml file as input.

<!--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>

注釈

このメソッドは、マークアップを含め、現在のノードのすべてのコンテンツを返します。This method returns all the content of the current node including the markup. 現在のノード (開始タグ) と対応する終了ノード (終了タグ) は返されません。The current node (start tag) and corresponding end node (end tag) are not returned. たとえば、次のように、次がある場合。For example, if you had the following:

<node>  
 this <child id="123"/>  
</node>  

ReadInnerXml の場合、this <child id="123"/> が返されます。ReadInnerXml returns this <child id="123"/>

このメソッドは、次のように要素と属性のノードを処理します。This method handles element and attribute nodes in the following manner:

ノード型Node type 呼び出し前に、の位置Position before the call XML フラグメントXML fragment 戻り値Return value 呼び出し後の位置Position after the call
Element item1 開始タグ上。On the item1 start tag. <item1>text1</item1><item2>text2</item2><item1>text1</item1><item2>text2</item2> text1text1 item2 開始タグ上。On the item2 start tag.
Attribute attr1 属性ノード上。On the attr1 attribute node. <項目 attr1"val1"attr2 を = ="val2"> テキスト<項目/><item attr1="val1" attr2="val2">text</item> val1val1 attr1 属性ノード上に留まる。Remains on the attr1 attribute node.

リーダーがリーフ ノード上にある場合、ReadInnerXml の呼び出しは Read と同じです。If the reader is positioned on a leaf node, calling ReadInnerXml is equivalent to calling Read. メソッドを返しますString.Empty(を除く、属性ノードの場合、属性の値が返されます)。The method returns String.Empty (except for attribute nodes, in which case the value of the attribute is returned).

このメソッドは、整形式 XML をチェックします。This method checks for well-formed XML. 場合ReadInnerXmlから呼び出される、 XmlValidatingReader、このメソッドでは、返されるコンテンツも確認します。If ReadInnerXml is called from an XmlValidatingReader, this method also validates the content returned.

実装されている、 XmlNodeReaderXmlTextReaderXmlValidatingReaderクラス、ReadOuterXmlメソッドは、名前空間に注意してください。As implemented in the XmlNodeReader, XmlTextReader and XmlValidatingReader classes the ReadOuterXml method is namespace aware.

このメソッドの非同期バージョンを参照してください。ReadInnerXmlAsyncします。For the asynchronous version of this method, see ReadInnerXmlAsync.

適用対象