2 u014464419 u014464419 于 2014.12.18 11:13 提问

c#xml通过button点击事件向xml中多次追加如何实现

xml:<?xml version="1.0" encoding="gb2312"?>


ddddd
ddd


fff
eeee

我想实现每点击一次button,就把输入的username和password追加到xml中,不覆盖之前的内容,添加一个节点。
private void button1_Click(object sender, EventArgs e)
{

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load("d:\\bat\\data.xml");

        //XmlNode node1 = xmlDoc.SelectSingleNode("/Config/Users");
        //Console.WriteLine(node1);
        XmlNode root = xmlDoc.SelectSingleNode("Config");//查找<Config> 
        XmlElement xe1 = xmlDoc.CreateElement("Users");//创建一个<Users>节点 

        XmlElement xesub1 = xmlDoc.CreateElement("username");
        xesub1.InnerText = textBox1.Text;//设置文本节点 
        xe1.PrependChild(xesub1);//添加到<Users>节点中 
        XmlElement xesub2 = xmlDoc.CreateElement("password");
        xesub2.InnerText = textBox2.Text;
        xe1.AppendChild(xesub2);

        root.AppendChild(xe1);//添加到<Config>节点中 
        xmlDoc.Save("d:\\bat\\data.xml");

    }

这是我的点击方法,每次添加都会覆盖掉, 请各位大神帮忙~

4个回答

u014464419
u014464419   2014.12.18 11:13



ddddd
ddd

hh
hh


xml没发好

u014464419
u014464419   2014.12.18 11:17

u014464419
u014464419   2014.12.18 11:18

晕,不会弄图片,就是跟节点是Config,子节点Users,每次添加一个Users。

q107770540
q107770540   Ds   Rxr 2014.12.18 13:54

你的XML代码看不到,可以参考这个来写一下:

 XElement srcTree = new XElement("Root", 
    new XElement("Element1", 1),
    new XElement("Element2", 2),
    new XElement("Element3", 3),
    new XElement("Element4", 4),
    new XElement("Element5", 5)
);
XElement xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5)
);
xmlTree.Add(new XElement("NewChild", "new content"));
xmlTree.Add(
    from el in srcTree.Elements()
    where (int)el > 3
    select el
);
// Even though Child9 does not exist in srcTree, the following statement will not
// throw an exception, and nothing will be added to xmlTree.
xmlTree.Add(srcTree.Element("Child9"));
Console.WriteLine(xmlTree);

结果:

 <Root>
  <Child1>1</Child1>
  <Child2>2</Child2>
  <Child3>3</Child3>
  <Child4>4</Child4>
  <Child5>5</Child5>
  <NewChild>new content</NewChild>
  <Element4>4</Element4>
  <Element5>5</Element5>
</Root>

http://msdn.microsoft.com/en-us/library/bb387083.aspx

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!