一个关于对XML文件查找替换的难题!

csdner 2008-07-09 05:16:56
grade.xml 文件结构如下:

<XML>
<A1>
</A1>
<B1>
<VALUE>ZHAO</VALUE>
<B1>
<B2>
<VALUE>QIAN</VALUE>
<B2>
...
</XML>

现在有一个table, 里面只有两列:
Name Grade
ZHAO A
QIAN B
.....


我需要用C#实现打开grade.xml文件,并把其中的VALUE替换为对应的Grade。结果需要保存:
<XML>
<A1>
</A1>
<B1>
<VALUE>A</VALUE>
<B1>
<B2>
<VALUE>B</VALUE>
<B2>
...
</XML>

Name列是唯一的,请教C#代码如何实现?谢谢。
...全文
116 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pupo 2008-07-09
  • 打赏
  • 举报
回复
你这不是标准的xml文档,只能通过读取文件的方式,用查找替换
liumang945 2008-07-09
  • 打赏
  • 举报
回复
0
amandag 2008-07-09
  • 打赏
  • 举报
回复
请参考
http://blog.csdn.net/amandag/archive/2008/07/08/2623322.aspx
有相应的更新代码,修改一下即可

今天白天无环境,无法帮代写代码了
csdner 2008-07-09
  • 打赏
  • 举报
回复
能否给出针对我问题的代码?
lovefootball 2008-07-09
  • 打赏
  • 举报
回复
唉,写代码的功夫就结了
lovefootball 2008-07-09
  • 打赏
  • 举报
回复

XmlDocument doc = new XmDocument();
doc.Load(你的文件路径);
foreach(DataRow row in table.Rows)
{
//循环的Table
XmlNode node = doc.SelectSingleNode(String.Format("/.//VALUE[text()='{0}']",row["Name"].ToString()));
if (node != null) node.InnerText = row["Grade"].ToString();
}
doc.Save(你的文件路径);
amandag 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 csdner 的回复:]
算了,不问这个问题了。
doc.Save(doc);的时候提示有错,我发现原来doc是个只读xml文件!!! :(
怎样保存结果呢?
[/Quote]

没碰到这个情况,能否代码详细点?
changjiangzhibin 2008-07-09
  • 打赏
  • 举报
回复
参照MSDN中的示例代码

直接用DataSet.Read(@"d:\grade.xml");

修改后DataSet.Write(@d:\newGrade.xml");
csdner 2008-07-09
  • 打赏
  • 举报
回复
算了,不问这个问题了。
doc.Save(doc);的时候提示有错,我发现原来doc是个只读xml文件!!! :(
怎样保存结果呢?
csdner 2008-07-09
  • 打赏
  • 举报
回复
我只是简略写了一个结构,文件是标准的XML文件,求代码。

110,536

社区成员

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

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

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