どのようなストリーミングの読みのXMLファイルのクライアントまで、フルのC#3.5
質問
どのようにすることができますいストリーミングの読み取大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としてるのでプルになりました