У меня есть файл размером 2GB xml, и я пытаюсь реализовать метод ReadToFollowing, но он немного напуган.ReadToFollowing XML Large File
Когда я использую это, я не могу заставить свои инструкции «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,
};
}
}
Что мне нужно сделать, чтобы сделать эту работу?