如何拆分一个XML文件到多个XML文件 [英] How to Split an XML file into multiple XML Files
本文介绍了如何拆分一个XML文件到多个XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图分裂在C#.NET中的XML文件,以多个小的XML文件和我
试图获得可能的最佳方式了这一点。任何帮助将是什么,我试图做...
源XML文档
$ B大...样品例如
$ b
<?XML版本=1.0独立=YES>?;
< DATABASE>
<&DOC GT;
<&DOCID GT; 8510188< / DOCID>
<&发行GT; 2010< /发行>
< CAT>文学艺术LT; / CAT>
< TITLE>测试与LT; / TITLE>
< TEXT>测试与LT; / TEXT>
< / DOC>
<&DOC GT;
<&DOCID GT; 1510179< / DOCID>
<&发行GT; 2012< /发行>
< CAT>其他< / CAT>
< TITLE>测试与LT; / TITLE>
< TEXT>测试与LT; / TEXT>
< / DOC>
< /数据库和GT;
应该分头到两个XML文档如下
1)
<?XML版本=1.0独立=YES>?;
< DATABASE>
<&DOC GT;
<&DOCID GT; 8510188< / DOCID>
<&发行GT; 2010< /发行>
< CAT>文学艺术LT; / CAT>
< TITLE>测试与LT; / TITLE>
< TEXT>测试与LT; / TEXT>
< / DOC>
< /数据库和GT;
2)
<?XML版本=1.0独立=YES>?;
< DATABASE>
<&DOC GT;
<&DOCID GT; 1510179< / DOCID>
<&发行GT; 2012< /发行>
< CAT>其他< / CAT>
< TITLE>测试与LT; / TITLE>
< TEXT>测试与LT; / TEXT>
< / DOC>
< /数据库和GT;
解决方案
好吧,我会使用LINQ到XML:
的XDocument DOC = XDocument.Load(的test.xml);
VAR newDocs = doc.Descendants(DOC)
。选择(D =>新建的XDocument(新的XElement(数据库,D)));
的foreach(在newDocs VAR newDoc)
{
newDoc.Save(/ *在这里工作了文件名* /);
}
(我假设你想拯救它们。也许你不需要。我刚下打印出来到控制台,而不是测试这一点。)
I am trying to split a XML file to multiple small xml files in C#.net and am trying to get the best possible approach to this. Any help on this will be great... Sample example on what I am trying to do...
Source XML document
<?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>
Should split to two xml documents as below
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>
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>
解决方案
Well, I'd use 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 */);
}
(I'm assuming you want to save them. Maybe you don't need to. I've tested this just by printing them out to the console instead.)
这篇关于如何拆分一个XML文件到多个XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文