XmlNodeReader によるノード ツリーの読み取り

XmlNodeReader は、与えられた DOM ノードのサブツリーを読み取るリーダーを提供します。XmlNodeReader は、サブツリーからノードを読み取って返します。返されるノードには、エンティティ参照ノードも含まれます。

XmlNodeReader には次の機能があります。

  • XML は整形式である必要があるという規則を適用します。
  • XmlDocument に DTD 情報が存在する場合は、既定の属性とエンティティを展開します。既定の属性情報を取得する方法の詳細については、「IsDefault プロパティ」を参照してください。

XmlDocument から XmlNodeReader を作成するコード例を次に示します。

Dim doc As New XmlDocument()
doc.Load("MyXml.xml")
Dim nodereader As New XmlNodeReader(doc)
While nodereader.Read()
   ' Read the XmlDocument as a stream of XML
End While
[C#]
XmlDocument doc = new XmlDocument();
doc.Load("MyXml.xml");
XmlNodeReader nodereader = new XmlNodeReader (doc);
while (nodereader.Read()) {
    // Read the XmlDocument as a stream of XML
}

XmlNodeReader は、XmlDocument 内の任意の XmlNode を使用して構築することもできます。

Select メソッドと XPath 式を使用して XmlDocument の特定ノードに移動する例を次に示します。次に、その位置から XmlNodeReader を作成します。XML 入力ファイル test.xml には、次のデータが含まれます。

Imports System
Imports System.Xml

Public Class Test
   
    Public Shared Sub Main()
        Dim doc As New XmlDocument()
        doc.Load("test.xml")
        Dim child As XmlNode = doc.SelectSingleNode("/root/child")
        If Not (child Is Nothing) Then
            Dim nr As New XmlNodeReader(child)
            While nr.Read()
                Console.WriteLine(nr.Value)
            End While
        End If
    End Sub 'Main
End Class 'Test
[C#]
using System;
using System.Xml;
public class Test {
   public static void Main() {
      XmlDocument doc = new XmlDocument();
      doc.Load("test.xml");
      XmlNode child = doc.SelectSingleNode("/root/child");
      if (child != null) {
         XmlNodeReader nr = new XmlNodeReader(child );
         while (nr.Read() )
            Console.WriteLine( nr.Value );
      }
   }
}

参照

XmlReader による XML の読み取り | XmlTextReader による XML データの読み取り | XmlValidatingReader による XML の検証 | XmlReader クラス | XmlReader メンバ | XmlNodeReader クラス | XmlNodeReader メンバ | XmlTextReader クラス | XmlTextReader メンバ | XmlValidatingReader クラス | XmlValidatingReader メンバ