XML 添加节点问题

开心懒宝 2014-12-12 03:26:44
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型

...全文
246 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
开心懒宝 2014-12-12
  • 打赏
  • 举报
回复
引用 3 楼 lai124793549 的回复:
[quote=引用 2 楼 bdmh 的回复:] XmlElement acc = null; acc要初始化
嗯,那我可以通过什么方式获取已经存在节点的element. acc = xmlDoc.GetElementById(ln[i].AccountID)    xmlDoc.GetElementsByTagName 好像没了。。。可以通过节点的name来定义他吗?[/quote] OK了,解决。 我是在foreach (XmlElement xnacc in node) 直接在这里定义,然后 acc=xnacc; 谢谢两位。
开心懒宝 2014-12-12
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
XmlElement acc = null; acc要初始化
嗯,那我可以通过什么方式获取已经存在节点的element. acc = xmlDoc.GetElementById(ln[i].AccountID)    xmlDoc.GetElementsByTagName 好像没了。。。可以通过节点的name来定义他吗?
bdmh 2014-12-12
  • 打赏
  • 举报
回复
XmlElement acc = null; acc要初始化
xdashewan 2014-12-12
  • 打赏
  • 举报
回复
GetElementById要求节点带id属性,不是只有element可以操作,node一样可以,不会写,参考 http://msdn.microsoft.com/zh-cn/library/system.xml.xmldocument.aspx http://blog.csdn.net/byondocean/article/details/7220757

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧