读取一个xml中的某一个节点,然后存储到另一个xml文件的某节点下

qulu2009 2010-03-27 12:57:28
如题所示,希望读取一个xml文件中的某一节点,然后存储在另一个文件的某一节点下。如:
file1.xml
<datamodel>
<DataID id="1">
<title>DEVS</title>
</DataID>
</datamodel>

file2.xml
<datamodel>
<DataID id="2">
<title>DEVS Beispiel</title>
</DataID>
</datamodel>
把file1的数据读到file2中去得到file2
file2.xml
<datamodel>
<DataID id="2">
<title>DEVS Beispiel</title>
</DataID>

<DataID id="1">
<title>DEVS</title>
</DataID>

</datamodel>
...全文
211 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qulu2009 2010-03-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bancxc 的回复:]

帮顶一下

大概就是C# code

XMLDocument x1= XMLDocument();
xl.Load("file1.xml");
XMLDocument x2= XMLDocument();
x2.Load("file2.xml");

XMLNode node = x1.SelectSingleNode("/datamodel/DataID[@id='1']");
XMLN……
[/Quote]

用了你的方法,但是运行时,给了个异常,说是要插入的节点来自不同的文档上下文,有没有解决方案阿。。
鸭梨山大帝 2010-03-27
  • 打赏
  • 举报
回复

using System;
using System.Xml;
using System.Linq;
using System.Xml.Linq;
using System.Collections;
using System.Collections.Generic;

class Program
{
static void Main()
{
XDocument xDocFileA = XDocument.Load(@"d:\file1.xml");
XDocument xDocFileB = XDocument.Load(@"d:\file2.xml");
XElement xeAdd= xDocFileA.Element("datamodel").Elements()
.FirstOrDefault(x=>x.Attribute("id").Value =="1") ;
XElement xe = xDocFileB.Element("datamodel");
xe.Add(xeAdd);
xDocFileB.Save(@"d:\file2.xml");
}
}
bancxc 2010-03-27
  • 打赏
  • 举报
回复
帮顶一下

大概就是

XMLDocument x1= XMLDocument();
xl.Load("file1.xml");
XMLDocument x2= XMLDocument();
x2.Load("file2.xml");

XMLNode node = x1.SelectSingleNode("/datamodel/DataID[@id='1']");
XMLNode node2 = node.Clone();
X2.SelectSingleNode("//datamodel").ApplendChild(node2);

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧