次の方法で共有


XmlTextReader コンストラクタ (String, XmlNodeType, XmlParserContext)

指定した文字列、XmlNodeType、および XmlParserContext を使用して、XmlTextReader クラスの新しいインスタンスを初期化します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)

構文

'宣言
Public Sub New ( _
    xmlFragment As String, _
    fragType As XmlNodeType, _
    context As XmlParserContext _
)
'使用
Dim xmlFragment As String
Dim fragType As XmlNodeType
Dim context As XmlParserContext

Dim instance As New XmlTextReader(xmlFragment, fragType, context)
public XmlTextReader (
    string xmlFragment,
    XmlNodeType fragType,
    XmlParserContext context
)
public:
XmlTextReader (
    String^ xmlFragment, 
    XmlNodeType fragType, 
    XmlParserContext^ context
)
public XmlTextReader (
    String xmlFragment, 
    XmlNodeType fragType, 
    XmlParserContext context
)
public function XmlTextReader (
    xmlFragment : String, 
    fragType : XmlNodeType, 
    context : XmlParserContext
)

パラメータ

  • xmlFragment
    解析する XML フラグメントを含んでいる文字列。
  • fragType
    XML フラグメントの XmlNodeType。これもフラグメント文字列に何を含めることができるかを判断します。下の表を参照してください。
  • context
    xmlFragment の解析先の XmlParserContext。これには、使用する XmlNameTable、エンコーディング、名前空間スコープ、現在の xml:lang、および xml:space スコープが含まれます。

例外

例外の種類 条件

XmlException

fragType が ElementAttribute、または Document のいずれかの XmlNodeType ではありません。

ArgumentNullException

xmlFragment が null 参照 (Visual Basic では Nothing) です。

解説

注意

Microsoft .NET Framework version 2.0 リリースでは、System.Xml.XmlReader.Create メソッドを使用して XmlReader インスタンスを作成することをお勧めします。これにより、このリリースで導入された新機能を十分に活用できます。詳細については、「XML リーダーの作成」を参照してください。

このコンストラクタは、指定した文字列を XML のフラグメントとして解析します。XML フラグメントが要素または属性の場合は、整形式 XML ドキュメントのルート レベルの規則をバイパスできます。このコンストラクタは、ReadInnerXml から返される文字列を処理できます。

fragType の有効値と、リーダーによる異なるノード型の解析方法の一覧を次の表に示します。

XmlNodeType

フラグメントに含まれる

Element

任意の有効な要素の内容 (たとえば、要素、コメント、処理命令、CDATA セクション、テキスト、およびエンティティ参照の任意の組み合わせ)。

XML 宣言も設定できます。これにより XML フラグメントのエンコーディングを指定できるため、XmlParserContext オブジェクトにそれを設定する必要はありません。

Attribute

属性の値 (引用符の内側の部分)。

Document

XML ドキュメント全体の内容。これにより、ドキュメント レベルの規則が適用されます。

使用例

XML フラグメントを解析する例を次に示します。XmlParserContext とその XmlNamespaceManager を使用して、名前空間の解決を処理します。

Imports System
Imports System.IO
Imports System.Xml

public class Sample 

  public shared sub Main()

    'Create the XML fragment to be parsed.
    Dim xmlFrag as string ="<book> " & _
                           "<title>Pride And Prejudice</title>" & _
                           "<bk:genre>novel</bk:genre>" & _
                           "</book>" 

    'Create the XmlNamespaceManager.
    Dim nt as NameTable = new NameTable()
    Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(nt)
    nsmgr.AddNamespace("bk", "urn:sample")

    'Create the XmlParserContext.
    Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.None)

    'Create the reader. 
    Dim reader as XmlTextReader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)
  
    'Parse the XML.  If they exist, display the prefix and  
    'namespace URI of each element.
    while (reader.Read())
      if (reader.IsStartElement())
        if (reader.Prefix=String.Empty)
           Console.WriteLine("<{0}>", reader.LocalName)
        else
            Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName)
            Console.WriteLine(" The namespace URI is " + reader.NamespaceURI)
        end if 
      end if
    end while
  
    'Close the reader.
    reader.Close()     
  
  end sub
end class
using System;
using System.IO;
using System.Xml;

public class Sample 
{
  public static void Main()
  {

    //Create the XML fragment to be parsed.
    string xmlFrag ="<book> " +
                    "<title>Pride And Prejudice</title>" +
                    "<bk:genre>novel</bk:genre>" +
                    "</book>"; 

    //Create the XmlNamespaceManager.
    NameTable nt = new NameTable();
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
    nsmgr.AddNamespace("bk", "urn:sample");

    //Create the XmlParserContext.
    XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

    //Create the reader. 
    XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);
  
    //Parse the XML.  If they exist, display the prefix and  
    //namespace URI of each element.
    while (reader.Read()){
      if (reader.IsStartElement()){
        if (reader.Prefix==String.Empty)
           Console.WriteLine("<{0}>", reader.LocalName);
        else{
            Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName);
            Console.WriteLine(" The namespace URI is " + reader.NamespaceURI);
        }
      }
    }
  
    //Close the reader.
    reader.Close();     
  
  }
} // End class
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   // Create the XML fragment to be parsed.
   String^ xmlFrag = "<book> <title>Pride And Prejudice</title> <bk:genre>novel</bk:genre> </book>";
   
   // Create the XmlNamespaceManager.
   NameTable^ nt = gcnew NameTable;
   XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( nt );
   nsmgr->AddNamespace( "bk", "urn:sample" );
   
   // Create the XmlParserContext.
   XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::None );
   
   // Create the reader. 
   XmlTextReader^ reader = gcnew XmlTextReader( xmlFrag,XmlNodeType::Element,context );
   
   // Parse the XML.  If they exist, display the prefix and  
   // namespace URI of each element.
   while ( reader->Read() )
   {
      if ( reader->IsStartElement() )
      {
         if ( reader->Prefix == String::Empty )
                  Console::WriteLine( "< {0}>", reader->LocalName );
         else
         {
            Console::Write( "< {0}: {1}>", reader->Prefix, reader->LocalName );
            Console::WriteLine( " The namespace URI is {0}", reader->NamespaceURI );
         }
      }
   }

   
   // Close the reader.
   reader->Close();
}
import System.*;
import System.IO.*;
import System.Xml.*;

public class Sample
{
    public static void main(String[] args)
    {
        //Create the XML fragment to be parsed.
        String xmlFrag = "<book> " + "<title>Pride And Prejudice</title>" 
            + "<bk:genre>novel</bk:genre>" + "</book>";
        //Create the XmlNamespaceManager.
        NameTable nt = new NameTable();
        XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
        nsmgr.AddNamespace("bk", "urn:sample");
        //Create the XmlParserContext.
        XmlParserContext context = new XmlParserContext(null, nsmgr, null,
            XmlSpace.None);
        //Create the reader. 
        XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, 
            context);
        //Parse the XML.  If they exist, display the prefix and  
        //namespace URI of each element.
        while (reader.Read()) {
            if (reader.IsStartElement()) {
                if (reader.get_Prefix().Equals(String.Empty)) {
                    Console.WriteLine("<{0}>", reader.get_LocalName());
                }
                else {
                    Console.Write("<{0}:{1}>", reader.get_Prefix(),
                        reader.get_LocalName());
                    Console.WriteLine(" The namespace URI is " + 
                        reader.get_NamespaceURI());
                }
            }
        }
        //Close the reader.
        reader.Close();
    } //main 
} //End class Sample

プラットフォーム

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0、1.0

参照

関連項目

XmlTextReader クラス
XmlTextReader メンバ
System.Xml 名前空間
XmlParserContext クラス

その他の技術情報

XmlReader による XML の読み取り