将文件中的 xml 个节点添加到现有的 xml 文件中
Add xml nodes from file into existing xml file
我对 LinQ 和 Xml 没有经验。我需要按如下方式加入两个 xml 个文件
file1.xml
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<SubNode>
<NodeA id="1" />
<NodeB id="2" />
<NodeC id="3" />
</SubNode>
<LonelyNode/>
</RootNode>
file2.xml
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<SubNode>
<NodeD id="1" />
<NodeE id="2" />
<NodeF id="3" />
</SubNode>
<LonelyNode/>
</RootNode>
实际代码
string fileName1 = "file1.xml";
string fileName2 = "file2.xml";
string filePath_file1 = String.Format("{0}{1}", rootDirectory, fileName1);
string filePath_file2 = String.Format("{0}{1}", rootDirectory, fileName2);
// create xml document from file1.xml
var document = XDocument.Load(filePath_file1.xml);
// add file2.xml
document.Root.Add(XDocument.Load(filePath_file2).Root.Elements());
Console.WriteLine(document);
Console.ReadLine();
实际产量
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<SubNode>
<NodeA id="1" />
<NodeB id="2" />
<NodeC id="3" />
</SubNode>
<LonelyNode/>
<SubNode>
<NodeD id="1" />
<NodeE id="2" />
<NodeF id="3" />
</SubNode>
<LonelyNode/>
</RootNode>
想要输出
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<SubNode>
<NodeA id="1" />
<NodeB id="2" />
<NodeC id="3" />
<NodeD id="1" />
<NodeE id="2" />
<NodeF id="3" />
</SubNode>
<LonelyNode/>
</RootNode>
如何指定要复制到第一个文件的节点?我只想从文件 2.
复制 <SubNode>
内容
您几乎完成了,而不是使用 Element
方法添加到 Root
找到 SubNode
元素,然后从其他文档添加元素。
document.Root
.Element("SubNode")
.Add(XDocument.Load(filePath_file2).Root.Element("SubNode").Elements());
勾选这个Demo
输出:
<RootNode>
<SubNode>
<NodeA id="1" />
<NodeB id="2" />
<NodeC id="3" />
<NodeD id="1" />
<NodeE id="2" />
<NodeF id="3" />
</SubNode>
<LonelyNode />
</RootNode>
我对 LinQ 和 Xml 没有经验。我需要按如下方式加入两个 xml 个文件
file1.xml
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<SubNode>
<NodeA id="1" />
<NodeB id="2" />
<NodeC id="3" />
</SubNode>
<LonelyNode/>
</RootNode>
file2.xml
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<SubNode>
<NodeD id="1" />
<NodeE id="2" />
<NodeF id="3" />
</SubNode>
<LonelyNode/>
</RootNode>
实际代码
string fileName1 = "file1.xml";
string fileName2 = "file2.xml";
string filePath_file1 = String.Format("{0}{1}", rootDirectory, fileName1);
string filePath_file2 = String.Format("{0}{1}", rootDirectory, fileName2);
// create xml document from file1.xml
var document = XDocument.Load(filePath_file1.xml);
// add file2.xml
document.Root.Add(XDocument.Load(filePath_file2).Root.Elements());
Console.WriteLine(document);
Console.ReadLine();
实际产量
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<SubNode>
<NodeA id="1" />
<NodeB id="2" />
<NodeC id="3" />
</SubNode>
<LonelyNode/>
<SubNode>
<NodeD id="1" />
<NodeE id="2" />
<NodeF id="3" />
</SubNode>
<LonelyNode/>
</RootNode>
想要输出
<?xml version="1.0" encoding="utf-8"?>
<RootNode>
<SubNode>
<NodeA id="1" />
<NodeB id="2" />
<NodeC id="3" />
<NodeD id="1" />
<NodeE id="2" />
<NodeF id="3" />
</SubNode>
<LonelyNode/>
</RootNode>
如何指定要复制到第一个文件的节点?我只想从文件 2.
复制<SubNode>
内容
您几乎完成了,而不是使用 Element
方法添加到 Root
找到 SubNode
元素,然后从其他文档添加元素。
document.Root
.Element("SubNode")
.Add(XDocument.Load(filePath_file2).Root.Element("SubNode").Elements());
勾选这个Demo
输出:
<RootNode>
<SubNode>
<NodeA id="1" />
<NodeB id="2" />
<NodeC id="3" />
<NodeD id="1" />
<NodeE id="2" />
<NodeF id="3" />
</SubNode>
<LonelyNode />
</RootNode>