使用XmlDocument的添加节点

问题描述:

在下面的XML文档,我需要追加一个节点使用XmlDocument的添加节点

<DASHBOARD> 
    <ANNOUNCEMENT> 
    <DISPLAYTEXT>testin one</DISPLAYTEXT> 
    </ANNOUNCEMENT> 
    <ADMINLINKS> 
    <LINK NAME="Google">"http:\\www.google.com"</LINK> 
    </ADMINLINKS> 
    <GENLINKS> 
    <LINK NAME="Clearquest">"http://clearquest.com/cqweb/"</LINK> 
    <LINK NAME="Google">http://www.google.com</LINK> 
    </GENLINKS> 
</DASHBOARD> 

的问题是我需要同时添加下adminlinks和genlinks一个新的节点命名的链接。下面是一段代码

XmlDocument xmldoc = new XmlDocument(); 
xmldoc.Load("DashBoard.xml"); 

XmlNode NodeGen = xmldoc.SelectSingleNode("DASHBOARD/GENLINKS"); 
XmlNode NodeAdmin = xmldoc.SelectSingleNode("DASHBOARD/ADMINLINKS"); 

XmlNode newLink = xmldoc.CreateNode(XmlNodeType.Element, "LINK", null); 
XmlAttribute xa = xmldoc.CreateAttribute("NAME"); 
xa.Value = LinkName; 
newLink.InnerText = Link; 
newLink.Attributes.Append(xa); 

NodeGen.AppendChild(newLink); 
NodeAdmin.AppendChild(newLink); 

xmldoc.Save("DashBoard.xml"); 

这将在adminlinks但不是在genlinks的链接。

+0

如果您发布的代码,XML或数据样本,** **请在高亮文本编辑器这些线路上,并点击编辑器中的“代码示例”按钮('{}')工具栏以很好的格式和语法突出显示它! – 2011-03-15 12:40:49

您正在将新的LINK节点添加到GENLINKS节点,然后将其移动到ADMINLINKS。试试这个:

NodeAdmin.AppendChild(newLink.Clone()); 
+0

谢谢你的工作! – ppraj 2011-03-15 12:48:52