2011-03-15 63 views
9

在下面的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

回答

10

您正在將新的LINK節點添加到GENLINKS節點,然後將其移動到ADMINLINKS。試試這個:

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

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