現在オフラインです。再接続するためにインターネットの接続を待っています

Visual C# を使用してファイルから XML を読み取る方法

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:307548
この資料の推奨の Visual Basic のバージョンでは、次を参照してください。 301225.

この資料は、次のマイクロソフトの.NET Framework クラス ライブラリの名前空間を参照します。
  • System.Xml
概要
この資料では、拡張マークアップ言語 (XML) をファイルから読み取る、 XmlTextReaderクラスを使用する方法について説明します。XmlTextReaderは、直接解析および XML 実装して、XML 1.0 仕様とから World Wide Web コンソーシアム (W3C) XML 仕様の名前空間のトークンを提供します。この資料など、XML ドキュメント オブジェクト モデル (DOM) オブジェクト モデルを使用するのではなく、XML ストリームをトークン化された、高速アクセスを提供します。

要件

推奨されるハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および必要な service pack は次をとおり。
  • Microsoft Visual Studio 2005年または Microsoft Visual Studio .NET
この資料は次のトピックに精通している事を前提としています。
  • XML の用語集
  • 作成し、XML ファイルを読み取り中

ファイルから XML を読み取る方法

次の使用例はBooks.xml という名前のファイルを使用します。Books.xml ファイルを作成または次のフォルダーに .NET ソフトウェア開発キット (SDK) のクイック スタートに含まれているサンプル ファイルを使用できます。
\Program Files\Microsoft Visual Studio の .NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
\Bin\Debug フォルダーにこのプロジェクトを作成するフォルダーの下にある Books.xml をコピーする必要があります。Books.xml はダウンロードもできます。参照してください、」関連情報」ダウンロードの場所です。
  1. Visual Studio 2005 または Visual Studio .NET を起動します。
  2. 新しい Visual C# コンソール アプリケーションを作成します。続行すると、直接に、「完全なコード リスト」セクション、またはアプリケーションをビルドするのには以下の手順を続行します。
  3. System.Xml.dll アッセンブリへの参照がプロジェクトに含まれていることを確認します。
  4. 後続のコードでXmlTextReaderの宣言を修飾する必要はありませんように、 System.Xml名前空間にusingディレクティブを指定します。その他の宣言の前に、" using "ディレクティブを使用する必要があります。
    using System.Xml;					
  5. XmlTextReaderオブジェクトのインスタンスを作成し、XML ファイルを設定します。XmlTextReaderクラスを DOM のオーバーヘッドなしの生のデータとして XML にアクセスする必要がある場合に使用する通常は、したがって、 XmlTextReaderクラスは、XML を読み取るためのより高速なメカニズムを提供します。XmlTextReaderクラスには、XML データの場所を指定する別のコンス トラクターがあります。次のコードは、 XmlTextReaderクラスのインスタンスを作成し、Books.xml ファイルを読み込みます。Class1 の Main プロシージャに次のコードを追加します。
    XmlTextReader reader = new XmlTextReader ("books.xml");					
  6. XML を参照してください。(この手順は外側の"while"ループについて説明し、XML を読み取るためのループを使用する次の 2 つの手順をデモンストレーションことに注意してください)。XmlTextReaderオブジェクトを作成した後は、XML データを読み込むReadメソッドを使用します。Readメソッドが引き続きに到達するまで、ファイルの末尾に読み取りメソッドを返します。"False"の値をポイントする XML ファイルを順番に移動するには
    while (reader.Read()) {    // Do some work here on the data.	Console.WriteLine(reader.Name);}Console.ReadLine();					
  7. ノードを調べます。XML データを処理するには、各レコードはNodeTypeプロパティから判断できるノードの種類が。名前のプロパティは、ノード名 (要素と属性名) と、現在のノード (またはレコード) のノード値 (ノード テキスト) を返します。NodeType列挙体は、ノードの種類を決定します。次のサンプル コードには、要素とドキュメントの種類の名前が表示されます。このサンプルが要素の属性を無視することに注意してください。
    while (reader.Read()) {    switch (reader.NodeType)     {        case XmlNodeType.Element: // The node is an element.            Console.Write("<" + reader.Name);   Console.WriteLine(">");            break;  case XmlNodeType.Text: //Display the text in each element.            Console.WriteLine (reader.Value);            break;  case XmlNodeType. EndElement: //Display the end of the element.            Console.Write("</" + reader.Name);   Console.WriteLine(">");            break;    }}					
  8. 属性を調べます。要素ノード型では、それらに関連付けられた属性ノードのリストを含めることができます。MovetoNextAttributeメソッドは、要素内の各属性の順番に移動します。ノードが属性を持っているかどうかをテストするには、 HasAttributesプロパティを使用します。AttributeCountプロパティは、現在のノードの属性の数を返します。
    while (reader.Read()) {       switch (reader.NodeType)        {           case XmlNodeType.Element: // The node is an element.               Console.Write("<" + reader.Name);               while (reader.MoveToNextAttribute()) // Read the attributes.                   Console.Write(" " + reader.Name + "='" + reader.Value + "'");      Console.WriteLine(">");               break;     case XmlNodeType.Text: //Display the text in each element.               Console.WriteLine (reader.Value);               break;     case XmlNodeType. EndElement: //Display the end of the element.               Console.Write("</" + reader.Name);      Console.WriteLine(">");               break;       }   }					
  9. 保存して、プロジェクトを閉じます。

完全なコード リスト

using System;using System.Xml;namespace ReadXMLfromFile{    /// <summary>    /// Summary description for Class1.    /// </summary>    class Class1    {        static void Main(string[] args)        {            XmlTextReader reader = new XmlTextReader ("books.xml");            while (reader.Read())             {                switch (reader.NodeType)                 {                    case XmlNodeType.Element: // The node is an element.                        Console.Write("<" + reader.Name);                        Console.WriteLine(">");                        break;                    case XmlNodeType.Text: //Display the text in each element.                        Console.WriteLine (reader.Value);                        break;                    case XmlNodeType.EndElement: //Display the end of the element.                        Console.Write("</" + reader.Name);                        Console.WriteLine(">");                        break;                }            }            Console.ReadLine();        }    }}				

サンプル出力

<bookstore><book><title>The Autobiography of Benjamin Franklin</title><author><first-name>Benjamin</first-name><last-name>Franklin</last-name></author><price>8.99</price></book><book><title>The Confidence Man</title><author><first-name>Herman</first-name><last-name>Melville</last-name></author><price>11.99</price></book><book><title>The Gorgias</title><author><name>Plato</name></author><price>9.99</price></book></bookstore>				

トラブルシューティング

コードをテストするとき、次の例外エラー メッセージが表示される可能性があります: 未処理の例外: System.Xml.XmlException: 予期しない XML 宣言です。XML 宣言は、ドキュメントの最初のノードである必要があり、その前に表示される空白文字は使用できません。

追加情報: システム エラーです。次のコード行で例外エラーが発生: 中
(reader.Read())
例外エラーは、無効な処理命令によって発生します。たとえば、処理命令には、余分なスペースがあります。無効な処理命令の例は次のとおりです。
<?xml version='1.0' ?>
この xml タグには、前のスペースが含まれて、'<’ bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the=""></’>

参照

次のファイルが Microsoft ダウンロード センターからダウンロードできます。
.NET Framework の XML クラスおよび C# の詳細については、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。XmlReaderクラスの詳細については、次の MSDN Web サイトを参照してください。XmlReaderを使用して、XML データの読み取り方法の詳細については、次の MSDN Web サイトを参照してください。

警告: この記事は自動翻訳されています

プロパティ

文書番号:307548 - 最終更新日: 05/07/2016 10:16:00 - リビジョン: 5.0

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition

  • kbdownload kbhowtomaster kbmt KB307548 KbMtja
フィードバック