どのようなストリーミングの読みのXMLファイルのクライアントまで、フルのC#3.5

StackOverflow https://stackoverflow.com/questions/45481

質問

どのようにすることができますいストリーミングの読み取大XMLファイルが含まれるxs:配列の直下のルート要素、負荷の全体ファイルをXDocumentインスタンスのメモリ?

役に立ちましたか?

解決

のようなSAX-スタイルの要素のパーサの XmlTextReader クラスで作成され XmlReader.の作成 うね。こちらは若干変性したコード例から CodeGuru:

void ParseURL(string strUrl)
{
  try
  {
    using (var reader = XmlReader.Create(strUrl))
    {
      while (reader.Read())
      {
        switch (reader.NodeType)
        {
          case XmlNodeType.Element:
            var attributes = new Hashtable();
            var strURI = reader.NamespaceURI;
            var strName = reader.Name;
            if (reader.HasAttributes)
            {
              for (int i = 0; i < reader.AttributeCount; i++)
              {
                reader.MoveToAttribute(i);
                attributes.Add(reader.Name,reader.Value);
              }
            }
            StartElement(strURI,strName,strName,attributes);
            break;
            //
            //you can handle other cases here
            //
            //case XmlNodeType.EndElement:
            // Todo
            //case XmlNodeType.Text:
            // Todo
            default:
            break;
          }
        }
      }
      catch (XmlException e)
      {
        Console.WriteLine("error occured: " + e.Message);
      }
    }
  }
}

他のヒント

できない必要に応じて、コメントを追加、まだ署名したが、コードのサンプルの掲載によるHirvox、現在選択されては答えとしてはバグを修正します。るべきではないの new 算書使用時の静的 Create 方法。

電流:

using (var reader = new XmlReader.Create(strUrl))

固定:

using (var reader = XmlReader.Create(strUrl))

だと思っていることはできません利用したい場合はオブジェクトモデル(XElement\XDocument)へのクエリ形式をサポートしています。明らかにできなXMLオブジェ木読みにならずに十分なデータです。しかし利用できる XmlReader クラスです。

のXmlReaderクラスXMLデータを読み込み ストリームからはファイルです。を提供す 非キャッシュされており、読み取り専用 アクセスXMLデータです。

ニはハウトゥ: http://support.microsoft.com/kb/301228/en-us とを覚えておいてくださいま利用するべきではありませんXmlTextReaderくXmlReaderとXmlReader.の作成

私はwikiで拾ったのを使ってますが、この"xs:シーケンスの、XMLのような要素になります。

だから開こうとしている大きなXMLスキーマファイルとは何ですか?が開く大きなXMLファイルに基づいてこのスキーマ?それから開こうとしている大きなXMLファイルの検証が同時にできますか。

これらの状況をすべき問題の標準XmlReaderはXmlValidatingReader).

XMLを読み込むとXMLReader: http://msdn.microsoft.com/en-us/library/9d83k261(VS.80).aspx

このコードサンプルを回XmlReaderスタイルコードをサックススタイルコードの場合だけ書きコードからただただ利用XmlReaderとしてるのでプルになりました

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top