-4
我有一個很大的XML,我需要將其拆分成較小的一個。C#拆分Xml與計數
我有一個很大的XML,我需要將其拆分成較小的一個。C#拆分Xml與計數
隨着MoreLINQ(可從的NuGet)可以拆分訂單成批次,然後從批建新的文件:
XDocument xdoc = XDocument.Load("orders.xml");
int batchSize = 2;
int batchIndex = 0;
foreach(var orders in xdoc.Descendants("order").Batch(batchSize))
{
XDocument doc = new XDocument(new XElement("orders", orders));
doc.Save(String.Format("orders-{0}.xml", batchIndex++));
}
這將創建一個新的文件,每份將包含batchSize
訂單內(當然,最後一個可以包含更少的訂單)。訂單將被放置在<orders>
根標籤下。
你甚至可以做所有的單個查詢
xdoc.Descendants("order").Batch(batchSize)
.Select((orders, index) => new { orders, index })
.ForEach(batch => {
XDocument doc = new XDocument(new XElement("orders", batch.orders));
doc.Save(String.Format("orders-{0}.xml", batch.index));
});
批未在system.collection.Generic.Ienumerable – user1453017
支持@ user1453017有你下載MoreLinq包,其中包括使用'MoreLinq;'命名空間參考你的文件? –
'批處理'相當容易實現 - 就像你自己在http://stackoverflow.com/a/13731823/168719 :)中演示的那樣 - 因此添加一個單獨的庫看起來像是在這裏矯枉過正。沒有跡象表明OP需要其他任何東西 –