+ -
当前位置:首页 → 问答吧 → 读取XML,添加节点

读取XML,添加节点

时间:2011-12-19

来源:互联网

C# code

private void btnReadXml_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDia = new OpenFileDialog();
            if (openDia.ShowDialog() == DialogResult.OK)
            {
                string strPath = openDia.FileName;
                
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(strPath);
                XmlNodeList nodeList = xmlDoc.DocumentElement.ChildNodes;
                XmlElement newNode = null;
                foreach (XmlNode node in nodeList)
                {
                    if (node.Name == "MBProperty")
                    {
                        foreach (XmlNode li in node.ChildNodes)
                        {
                            if (li.Name == "IIsWebServer")
                            {
                                string s = li.Attributes["ServerComment"].Value;
                                if (s.Equals(txtValue.Text))
                                {
                                    newNode = xmlDoc.CreateElement(txtNode.Text);
                                    newNode.SetAttribute(txtMsg1.Text, txtValue1.Text);
                                    li.AppendChild(newNode);//想把这个newNode添加在当前li节点之后 
                                }
                            }
                        }
                    }
                }
                string fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".xml";
                XmlTextWriter writer = new XmlTextWriter(fileName, null);
                writer.Formatting = Formatting.Indented;
                xmlDoc.WriteTo(writer);
                writer.Close();

            }
        }        

作者: w290601645   发布时间: 2011-12-19



顶下

作者: w290601645   发布时间: 2011-12-19

li.ParentNode.AppendChild(newNode);

作者: net_lover   发布时间: 2011-12-19

也可以使用InsertAfter,参见
http://msdn.microsoft.com/zh-cn/library/system.xml.xmlnode.insertafter.aspx

作者: net_lover   发布时间: 2011-12-19

引用 3 楼 net_lover 的回复:

也可以使用InsertAfter,参见
http://msdn.microsoft.com/zh-cn/library/system.xml.xmlnode.insertafter.aspx


用了insertafter 还是添加在IIsWebServer里。。。
<IIsWebServer>
ServerComment="xctalent">
<addNode xmlns="" Location="测试值1"/>
</IIsWebServer>

作者: w290601645   发布时间: 2011-12-19

引用 2 楼 net_lover 的回复:

li.ParentNode.AppendChild(newNode);


这样 添加到最后了

作者: w290601645   发布时间: 2011-12-19



作者: w290601645   发布时间: 2011-12-19


作者: jaylongli   发布时间: 2011-12-19

node.InsertAfter(newNode,li);

作者: Sandy945   发布时间: 2011-12-19

引用 8 楼 sandy945 的回复:
node.InsertAfter(newNode,li);


学习

作者: xl_0715   发布时间: 2011-12-19

相关阅读 更多