我怎样才能简化这个?
我有一个 XML 文件,例如:
<Root>
<Header />
<Content />
<Content />
<Content />
<!-- …. Lots of Contents -->
<Footer />
</Root>
我需要拆分成更小的文件,以便每个文件都有一个“页眉”和一个“页脚”,然后是 X 多个“内容”。我当前的方法获取主文件的副本,删除所有内容,然后根据 skip & take 添加所需的内容。
我不喜欢它,因为我每次都将原件复制到内存中,删除一些内容,然后添加一些我刚刚删除的内容:
while (index < totalContents) {
var newXDoc = new XDocument(xDoc);
newXDoc.Descendants("Content").Remove();
newXDoc.Root.Element("Header").AddAfterSelf(
xDoc
.Descendants("Content")
.Skip(index)
.Take(ordersPerFile)
);
xmlDocs.Add(XmlConverter.ToXmlDocument(newXDoc));
index += ordersPerFile;
}
有没有更优雅的方式来执行这项任务?
我正在寻找类似的东西:
while (index < totalContents) {
var newXDoc = new XDocument(
xDoc.Where(x => x.ContentElementsThatIWantForThisIteration...)
);
xmlDocs.Add(XmlConverter.ToXmlDocument(newXDoc));
index += ordersPerFile;
}
谢谢