我有一个包含大约 30 个随机命名的 XML 文件的目录。因此,名称对它们的内容一无所知。而且我需要根据预定义的规则将所有这些文件合并到一个文件中。不幸的是,使用简单的样式表太复杂了。
每个文件的根目录中最多可以有 15 个不同的元素。因此,我有 15 种不同的方法,每种方法都将 XDocument 作为参数并在 XML 中搜索特定元素。然后它将处理该数据。而且因为我以特定顺序调用这些方法,所以我可以确保所有数据都以正确的顺序处理。
示例节点是例如产品列表、特定产品代码的价格列表、产品名称翻译列表、国家列表、特定国家产品折扣列表等等。不,这些也不是很简单的结构。
现在,我正在做这样的事情:
List<XmlFileData> files = ImportFolder.EnumerateFiles("*.xml", SearchOption.TopDirectoryOnly).Select(f => new XDocument(f.FullName)).ToList();
files.ForEach(MyXml, FileInformation);
files.ForEach(MyXml, ParseComments);
files.ForEach(MyXml, ParsePrintOptions);
files.ForEach(MyXml, ParseTranslations);
files.ForEach(MyXml, ParseProducts);
// etc.
MyXml.Save(ExportFile.FullName);
我想知道我是否可以通过减少内存读取并产生更快结果的方式来做到这一点。不过,速度比记忆更重要。因此,该解决方案有效。我只需要更快的东西,使用更少的内存。
有什么建议么?