c#中xml添加移动节点问题,急需求助

Jason-Jin 2009-12-08 02:12:53
我现在有如下XML数据,存放在 XmlDocument中,我想移动节点,并根据ParentID将对应的数据放进这个节点中,
比如将ParentID="1"的条目放进“总经理这个节点中”(ParentID还不固定,又ParentID和ParentID1,ParentID2,并且是动态增加的),请高手们请与指教,最好又详细代码,谢谢
<cun>
<node label="总经理" StrID="1" ParentID="0"/>
<node label="企划部经理(M)" StrID1="2" ParentID1="1"/>
<node label="" StrID2="" ParentID2=""/>
<node label="" StrID3="" ParentID3=""/>
<node label="总经理" StrID="1" ParentID="0"/>
<node label="运用部经理(M)" StrID1="3" ParentID1="1"/>
<node label="" StrID2="" ParentID2=""/>
<node label="" StrID3="" ParentID3=""/>
<node label="总经理" StrID="1" ParentID="0"/>
<node label="开发部现行开发课(M)" StrID1="4" ParentID1="1"/>
<node label="社内系担当(SS)" StrID2="6" ParentID2="4"/>
<node label="社内系员工" StrID3="8" ParentID3="6"/>
<node label="总经理" StrID="1" ParentID="0"/>
<node label="开发部现行开发课(M)" StrID1="4" ParentID1="1"/>
<node label="品质系担当(SS)" StrID2="7" ParentID2="4"/>
<node label="品质系员工" StrID3="9" ParentID3="7"/>
<node label="总经理" StrID="1" ParentID="0"/>
<node label="开发部次期开发课(M)" StrID1="5" ParentID1="1"/>
<node label="次期开发课员工" StrID2="10" ParentID2="5"/>
<node label="" StrID3="" ParentID3=""/>
</cun>
...全文
127 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlcp520 2009-12-08
  • 打赏
  • 举报
回复
还没学XML 帮顶
wartim 2009-12-08
  • 打赏
  • 举报
回复
何况平级节点的顺序没有任何意义
wartim 2009-12-08
  • 打赏
  • 举报
回复
没测试过,大体上有层次的是这样,或是CloneNode
不过你的没层次啊,都自己改吧

wartim 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jjx0224 的回复:]
引用 1 楼 zetee 的回复:
不知道说什么。

就是移动节点,比如将 <node label="企划部经理(M)" StrID1="2" ParentID1="1"/>
移动到 <node label="总经理" StrID="1" ParentID="0"/> 下,以此类推,根据 ParentID移动
[/Quote]


XmlNode MoveNode = Doc.SelectSingleNode("//cun/node[@StrID1=\"2\" and @ParentID1=\"1\"]");
XmlNode ParentNode = Doc.SelectSingleNode("//cun/node[@StrID1=\"1\" and @ParentID1=\"0\"]");

ParentNode.AppendChild(MoveNode);
Doc.RemoveChild(MoveNode);

Doc.Save(...);
Jason-Jin 2009-12-08
  • 打赏
  • 举报
回复
没人知道吗
wangkuang5 2009-12-08
  • 打赏
  • 举报
回复
先读完这个<cun></cun>节点啊,然后再重写一次,比较笨的方法
Jason-Jin 2009-12-08
  • 打赏
  • 举报
回复
又什么办法吗
Jason-Jin 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zetee 的回复:]
不知道说什么。
[/Quote]
就是移动节点,比如将<node label="企划部经理(M)" StrID1="2" ParentID1="1"/>
移动到 <node label="总经理" StrID="1" ParentID="0"/> 下,以此类推,根据 ParentID移动
zetee 2009-12-08
  • 打赏
  • 举报
回复
不知道说什么。

110,566

社区成员

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

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

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