1、添加新节点前进行判断看是否已存在相同的属性值,若存在进行更新,不存在则进行添加操作。

       protected bool AddPizza()
{
//初始化id
int newId;
string filePath = HttpContext.Current.Server.MapPath("XMLFile.xml");
//创建XML文件对象的实例doc
XmlDocument doc = new XmlDocument();
//加载XML文件
doc.Load(filePath);
//获取结点Pizza下的所有子结点
XmlNodeList nodeList = doc.SelectSingleNode("Pizza").ChildNodes;
bool isExist = true;
foreach (XmlElement xe in nodeList)
{
isExist = xe.Attributes["size"].Value == tbPizzaSize.Text;
if (isExist)
{
xe.SetAttribute("price", tbPizzaPrice.Text);
doc.Save(filePath);
} }
if (!isExist)
{
if (nodeList.Count > )
{ //查找最后一个结点的id
newId = Convert.ToInt32(doc.DocumentElement.SelectSingleNode("/Pizza/Pizzas[last()]").Attributes["id"].Value) + ;
//创建一个新的xml元素
XmlElement Pizzas = doc.CreateElement("Pizzas");
//创建xml属性
XmlAttribute id = doc.CreateAttribute("id");
XmlAttribute size = doc.CreateAttribute("size");
XmlAttribute price = doc.CreateAttribute("price");
//给xml属性赋值
id.Value = newId.ToString();
size.Value = tbPizzaSize.Text;
price.Value = tbPizzaPrice.Text;
//给结点赋值
Pizzas.InnerText = tbPizzaName.Text;
//把属性值添加到元素结点里
Pizzas.Attributes.Append(id);
Pizzas.Attributes.Append(size);
Pizzas.Attributes.Append(price);
//把元素结点添加到XMl文件里
doc.DocumentElement.AppendChild(Pizzas);
//保存XML文件
doc.Save(filePath);
}
else
{
newId = ;
}
}
return true;
}

最新文章

  1. 可变字符串NSMutableString
  2. 基于数据库MySQL的简易学生信息管理系统
  3. Java基础之常用类
  4. oracle数据库如何创建角色并对角色授予权限
  5. 读取jar内的配置文件
  6. C#算法基础之冒泡排序
  7. 【noip2012提高组】国王游戏
  8. Java经典案例之-“成绩等级划分”
  9. SQL Server 日志清理
  10. Two kinds of item classification model architecture
  11. Linux部署笔记分享
  12. vue-manage-system 后台管理系统开发总结
  13. JavaScript数组去重—ES6的两种方式
  14. Linux中OCI开发库的配置
  15. 【C++】C++中的迭代器
  16. 微信小程序https配置
  17. 二分求幂/快速幂取模运算——root(N,k)
  18. string 常量池 栈 堆
  19. poj3268 Silver Cow Party(两次SPFA || 两次Dijkstra)
  20. LAMP集群项目五 部署NFS存储服务并设置WEB服务挂载

热门文章

  1. Android RxJava/RxAndroid结合Retrofit使用
  2. vue - 选项
  3. String、StringBuilder、StringBuffer对比
  4. html调用摄像头的方法汇总
  5. 利用email.net设置网络代理发邮件
  6. 关于audio标签播放跨域的问题
  7. Mysql暴错注入代码-webshell
  8. 【Android应用开发技术:用户界面】布局管理器
  9. TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter实现Tab标签
  10. Atitit JAVA p2p设计与总结  JXTA 2