我有一个 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,
};
}
}
我需要做什么才能完成这项工作?