如何修改xml文件中重节点名相同而属性不同的值

qxzhu 2013-08-08 10:58:26
如下所示xml文件
<?xml version="1.0"?>
<root >
<Ge Type="All" />
<!-- test1 -->
<u>
<!-- test2. -->
<SS>
<s Name="t1" U="test1" />
<s Name="t2" U="testb" />
<s Name="t3" U="testd" />
</SS>
<!-- test3 -->
<D I="2l" />
</u>
</root>

我要找到 <s Name="t2" U="testb" />
并且将U="testb" 修改为U="test2" ,将如何操作。
...全文
463 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
u011638080 2013-08-09
  • 打赏
  • 举报
回复
引用 5 楼 qxzhu 的回复:
xpath应该很好用,但要如何关到到treeview上呢。
string xpath = treeVw.SelectedNode.FullPath
如何能转化成可用的xpath 谢谢
你可以把TreeNode所对应的XmlNode存到TreeNode.Tag里面,那么就可以 XmlNode node = treeVw.SelectedNode.Tag as XmlNode; 直接改这个node就ok了。
qxzhu 2013-08-09
  • 打赏
  • 举报
回复
引用 4 楼 gomoku 的回复:
可以用XPath:

XmlElement el = doc.SelectSingleNode("//s[@Name='t2']") as XmlElement;
el.SetAttribute("U", "test2");
treeVw.SelectedNode.FullPath 得到的是\\u\\ss\\s这样的路径如何快速转成xpath能识别的路径呢
qxzhu 2013-08-09
  • 打赏
  • 举报
回复
这个思路不错,结贴了。
gomoku 2013-08-08
  • 打赏
  • 举报
回复
可以用XPath:

XmlElement el = doc.SelectSingleNode("//s[@Name='t2']") as XmlElement;
el.SetAttribute("U", "test2");
qxzhu 2013-08-08
  • 打赏
  • 举报
回复
绑定到TreeView我已做过了,关键问题是查找的时候<s>一共有三个是同名的,每次修改的时候会同时将三个都修改了,如我要修改<s Name="t2" U="testb" />中的U="test2"结果所有三个 <s Name="t1" U="test1" /> <s Name="t2" U="testb" /> <s Name="t3" U="testd" /> 中的U变成U="test2"了 <s Name="t1" U="test2" /> <s Name="t2" U="test2" /> <s Name="t3" U="test2" /> 实际上我只要修改一个即应该是这样: <s Name="t1" U="test1" /> <s Name="t2" U="test2" /> <s Name="t3" U="testd" />
人生导师 2013-08-08
  • 打赏
  • 举报
回复
首先你要把XML内容绑定到TreeView控件中,具体实现可以参考这里:http://www.cnblogs.com/hedongsong/archive/2012/11/12/2766252.html 然后对TreeView的TextChanged事件进行处理,在处理函数中更新XML文件的对于节点,涉及到相应地对XML文件进行查找和修改的操作,这个可以百度下就很多文章介绍的
qxzhu 2013-08-08
  • 打赏
  • 举报
回复
最好是象这样,将xml文件存放到树图中treeview控件,然后点击就能改的。
qxzhu 2013-08-08
  • 打赏
  • 举报
回复
xpath应该很好用,但要如何关到到treeview上呢。
string xpath = treeVw.SelectedNode.FullPath
如何能转化成可用的xpath 谢谢

110,534

社区成员

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

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

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