当前位置: 代码迷 >> .NET相关 >> XML 添加节点有关问题
  详细解决方案

XML 添加节点有关问题

热度:192   发布时间:2016-04-24 03:00:23.0
XML 添加节点问题
    XML:<?xml version="1.0"?>
<log>
  <account value="936541e1-942a-4163-9a71-0442a4aa04a8">
    <time>12/12/2014 10:10:50 AM</time>
  </account>
</log>

我想实现的效果:
<log>
  <account value="936541e1-942a-4163-9a71-0442a4aa04a8">
    <time>12/12/2014 10:10:50 AM</time>
  <time>12/12/2014 10:10:50 AM</time>
  </account>
<account value="31316663313216">
    <time>12/12/2014 10:10:50 AM</time>
  <time>12/12/2014 10:10:50 AM</time>
  </account>
</log>


     代码:    XmlDocument xmlDoc = new XmlDocument();
                        xmlDoc.Load("..\\..\\IsaLogXml.xml");
                        XmlNode root = xmlDoc.SelectSingleNode("log");//查找<log>
                        System.Xml.XmlNodeList node = root.ChildNodes; //key节点
                        XmlElement acc;  //我不知道怎么定义初始化这个类型的参数。。。
                        foreach (XmlNode xnacc in node)
                        {
                            //XmlElement acc = (XmlElement)xnacc; 
                            if (xnacc.Value != ln[i].AccountID)//不存在
                            {
                                acc = xmlDoc.CreateElement("account");//创建一个<acc>节点
                                acc.SetAttribute("value", ln[i].AccountID);
                                root.AppendChild(acc);
                            }
                            else
                            {
                                acc = xmlDoc.GetElementById(ln[i].AccountID);//怎么得到某个节点的element型
                            }
                        }
                        for (int j = 0; j < messages.Count; j++)
                        {
                                XmlElement time = xmlDoc.CreateElement("time");//创建一个<time>节点
                                  time.InnerText = DateTime.Now.ToString();//设置文本节点
                                  acc.AppendChild(time);//添加到<acc>节点中
                        }

错误:Use of unassigned local variable 'acc'

还有acc = xmlDoc.GetElementById(ln[i].AccountID)我知道这是错的,我想知道怎么得到某个节点的element型


------解决思路----------------------
GetElementById要求节点带id属性,不是只有element可以操作,node一样可以,不会写,参考
http://msdn.microsoft.com/zh-cn/library/system.xml.xmldocument.aspx
http://blog.csdn.net/byondocean/article/details/7220757
------解决思路----------------------
XmlElement acc = null;
acc要初始化
  相关解决方案