大きな xml があり、それを小さなものに分割する必要があります。
質問する
150 次
1 に答える
1
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));
});
于 2013-07-29T08:24:16.707 に答える