2GB の xml ファイルがあり、ReadToFollowing メソッドを実装しようとしていますが、少しファンキーです。
これを使用すると、「if」ステートメントが機能しなくなります。基本的に、xmlReader.ReadInnerXML() は iVehicle の下のすべてのノードを戻します。私はそれがドキュメント内の各 iVehicle のすべてのノードであると想定しています (これはおそらく私が望んでいるものですが、(iVehicle ごとに) オブジェクトを設定して返すことができるように子ノードを取得する必要もあります)。
using (FileStream stream = new FileStream(uri, FileMode.Open, FileAccess.Read))
{
XmlTextReader xmlReader = new XmlTextReader(stream);
while (xmlReader.ReadToFollowing("iVehicle"))
{
if(xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name.Equals("FamilyName"))
{
fundFamilyId = xmlReader.ReadInnerXml();
}
if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name.Equals("InvestmentVehicle"))
{
secId = xmlReader.GetAttribute("_Id").ToString();
}
if (el.NodeType == XmlNodeType.Element && el.Name == "TradingSymbol")
{
ticker = xmlReader.ReadInnerXml();
}
yield return new parsedXML
{
Id = secId,
FamilyName = familyName,
TickerId = ticker,
};
}
}
これを機能させるにはどうすればよいですか?