如何将XML文件拆分为多个XML文件

AML*_*AML 8 c# xml split

我试图将一个XML文件拆分为C#.net中的多个小xml文件,并试图找到最好的方法.对此的任何帮助都会很棒......关于我想做什么的示例...

源XML文档

<?xml version="1.0" standalone="yes"?>
<DATABASE>
  <DOC>
    <DOCID>8510188</DOCID>
    <ISSUE>2010</ISSUE>
    <CAT>Literature and Art</CAT>
    <TITLE>Test</TITLE>
    <TEXT>Test</TEXT>
  </DOC>
  <DOC>
    <DOCID>1510179</DOCID>
    <ISSUE>2012</ISSUE>
    <CAT>Miscellaneous</CAT>
    <TITLE>Test</TITLE>
    <TEXT>Test</TEXT>
  </DOC>
</DATABASE>
Run Code Online (Sandbox Code Playgroud)

应分成两个xml文件,如下所示

1)

<?xml version="1.0" standalone="yes"?>
<DATABASE>
  <DOC>
   <DOCID>8510188</DOCID>
   <ISSUE>2010</ISSUE>
   <CAT>Literature and Art</CAT>
   <TITLE>Test</TITLE>
   <TEXT>Test</TEXT>
  </DOC>
</DATABASE>
Run Code Online (Sandbox Code Playgroud)

2)

<?xml version="1.0" standalone="yes"?>
<DATABASE>
  <DOC>
    <DOCID>1510179</DOCID>
    <ISSUE>2012</ISSUE>
    <CAT>Miscellaneous</CAT>
    <TITLE>Test</TITLE>
    <TEXT>Test</TEXT>
  </DOC>
</DATABASE>
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

好吧,我使用LINQ to XML:

XDocument doc = XDocument.Load("test.xml");
var newDocs = doc.Descendants("DOC")
                 .Select(d => new XDocument(new XElement("DATABASE", d)));
foreach (var newDoc in newDocs)
{
    newDoc.Save(/* work out filename here */);
}
Run Code Online (Sandbox Code Playgroud)

(我假设你想保存它们.也许你不需要.我只是通过将它们打印到控制台来测试它.)

  • @AML:在usings部分包含命名空间`System.Linq`和`System.XML.Linq`. (2认同)