我想通过指定的节点名称将一个 xml 文档拆分为多个 xml 文档,(类似于 string.Split(...)。)
示例:我有以下 xml 文档。
<root>
<nodeA>
Hello
</nodeA>
<nodeA>
<nodeB>
node b Text
</nodeB>
<nodeImage>
image.jpg
</nodeImage>
</nodeA>
<nodeA>
node a text
</nodeA>
</root>
我想通过'nodeImage'将这个xml文档拆分成3个部分,并保持原来的xml结构。 (注意:名为“nodeImage”的节点可以在任何地方)
1. nodeImage之前的xml
2. nodeImage的xml
3. nodeImage之后的xml
对于示例 xml,结果应为:
XML 文档 1:
<root>
<nodeA>
Hello
</nodeA>
<nodeA>
<nodeB>
node b Text
</nodeB>
</nodeA>
</root>
XML 文档 2:
<root>
<nodeA>
<nodeImage>
image.jpg
</nodeImage>
</nodeA>
</root>
XML 文档 3:
<root>
<nodeA>
node a text
</nodeA>
</root>
有谁知道这个要求是否有好的算法或现有代码示例?
更新说明:
如果在 xml 文档中只有一个名为“nodeImage”的节点,那么这个 xml 文档应该总是被拆分成 3 个 xml 文档。
最佳答案
XElement xe = XElement.Load(XMLFile);
foreach(XElement newXE in xe.Elements("nodeA"))
{
XElement root = new XElement("root",newXE);
root.Save(newFile);
}
关于c# - xml文件拆分算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18205271/