当前位置: 首页 > news >正文

C# 使用XML文件保存配方数据

在C#中,使用哈希表对XML文件读写。

知识点

XML文件

XML 指可扩展标记语言(eXtensible Markup Language)。可以理解为一种数据结构。主要用到XML的创建、节点增加、修改节点、删除节点。

定义xml文档:XmlDocument xmlDoc = new XmlDocument();
初始化xml文档:xmlDoc.Load(“D:\book.xml”);//找到xml文件
创建根元素:XmlElement xmlElement = xmlDoc.CreateElement(“”, “Employees”, “”);
创建节点:XmlElement xeSub1 = xmlDoc.CreateElement(“title”);
查找Employees节点:XmlNode root = xmlDoc.SelectSingleNode(“Employees”);
添加节点:xe1.AppendChild(xeSub1);
更改节点的属性:xe.SetAttribute(“Name”, “李明明”);
移除xe的ID属性:xe.RemoveAttribute(“ID”);
删除节点title:xe.RemoveChild(xe2);

实现步骤

创建XML文件

 //获取数据
string FruitName, TempertureMode, MilkWeight, TeaWeight;
string RecipeName;if (comboBox1.SelectedItem == null)
{comboBox1.SelectedIndex = 0;}FruitName = comboBox1.SelectedItem.ToString();if (comboBox2.SelectedItem == null)
{comboBox2.SelectedIndex = 0;}
TempertureMode = comboBox2.SelectedItem.ToString();
MilkWeight = textBox2.Text.Trim();
TeaWeight = textBox3.Text.Trim();
RecipeName = textBox5.Text.Trim();string filename = System.Environment.CurrentDirectory + RecipeName + ".xml";
if (File.Exists(filename))
{label6.Text = "文件已存在";
}
else
{//创建XML文件XmlDocument xmlDoc = new XmlDocument();XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);xmlDoc.AppendChild(dec);//添加XML根元素XmlElement xmlroot = xmlDoc.CreateElement("奶茶配方");xmlDoc.AppendChild(xmlroot);// 添加一级节点XmlElement FirstChildNode = xmlDoc.CreateElement("配方名称");FirstChildNode.InnerText = RecipeName;//添加二级节点//添加水果名称到二级节点XmlElement SecondChildNode1 = xmlDoc.CreateElement("水果名称");SecondChildNode1.InnerText = FruitName;//添加温度到二级节点XmlElement SecondChildNode2 = xmlDoc.CreateElement("温度");SecondChildNode2.InnerText = TempertureMode;//添加牛奶重量到二级节点XmlElement SecondChildNode3 = xmlDoc.CreateElement("牛奶重量");SecondChildNode3.InnerText = MilkWeight;//添加糖重量到二级节点XmlElement SecondChildNode4 = xmlDoc.CreateElement("糖重量");SecondChildNode4.InnerText = TeaWeight;//将配方元素参数绑定配方名称FirstChildNode.AppendChild(SecondChildNode1);FirstChildNode.AppendChild(SecondChildNode2);FirstChildNode.AppendChild(SecondChildNode3);FirstChildNode.AppendChild(SecondChildNode4);xmlroot.AppendChild(FirstChildNode);//定义项目路径,保存xml文件string XMLpath = System.Environment.CurrentDirectory;xmlDoc.Save(XMLpath + RecipeName + ".xml");label6.Text = "配方创建完成";

在这里插入图片描述
本步骤操作时注意以下几个问题:
1、使用comboBox控件时,需要对控件所选内容判断,

            if (comboBox1.SelectedItem == null){comboBox1.SelectedIndex = 0;}FruitName = comboBox1.SelectedItem.ToString();

2、在保存XML文件时,计划备份在项目所在的debug文件夹,但获取的只是路径,保存的是文件名。如果输入的参数是路径,就会报权限不足的错误。具体可参考XML的Save方法源代码

public virtual void Save(string filename){if (DocumentElement == null){throw new XmlException("Xml_InvalidXmlDocument", Res.GetString("Xdom_NoRootEle"));}XmlDOMTextWriter xmlDOMTextWriter = new XmlDOMTextWriter(filename, TextEncoding);try{if (!preserveWhitespace){xmlDOMTextWriter.Formatting = Formatting.Indented;}WriteTo(xmlDOMTextWriter);xmlDOMTextWriter.Flush();}finally{xmlDOMTextWriter.Close();}}

3、增加文件是否存在判断,如果保存的配方已经存在,则无法保存

http://www.dtcms.com/a/566469.html

相关文章:

  • 小说网站自主建设网站域名申请
  • 西安谁家的集团门户网站建设比较好上海公司车牌
  • Spring配置数据源
  • Product Hunt 每日热榜 | 2025-11-02
  • 基于图像的三维重建
  • 越秀区做网站河南网站建设价格与方案
  • 什么网站的新闻做参考文献中信建设有限责任公司属于央企吗
  • 硬件工程师-基础知识(一)
  • 都匀经济开发区建设局网站无锡电子商务网站制作
  • html5 input[type=date]如何让日期中的年/月/日改成英文
  • 嘉兴城乡建设局网站株洲seo优化哪家好
  • 【开题答辩全过程】以 法律类教辅平台为例,包含答辩的问题和答案
  • 商务网站建设哪家好免费聊天不充值软件
  • 网站 用cms 侵权免费的网站域名查询565wcc
  • 群晖 NAS 办公套件:用Synology Calendar 高效管理日程与任务
  • 屋领网站固链北京市小程序开发
  • 百度商桥在网站营业执照年报入口
  • C语言做网站需要创建窗口吗群晖手动安装wordpress
  • 个人网站建设的花费网页制作模板关于我们
  • pyside6常用控件:QLineEdit() 文本输入框 用户提示、输入模式、输入验证
  • 构建AI智能体:八十三、当AI开始“失忆“:深入理解和预防模型衰老与数据漂移
  • 沈阳公司做网站学编程的基础要具备什么
  • 上海营销网站建站公司自媒体还是做网站
  • GD32F407VE天空星开发板的MAX7219的8x8点阵屏驱动的实现
  • 网站建设找博网杭州商城型网站建设
  • 智慧城市综合管理平台如何破解城市治理难题
  • 重庆做网站推广东莞玩具加工东莞网站建设
  • Javascript运算符之算术运算符、赋值运算符
  • 给网站做导流计算机最值得考的十大证书
  • 电子书网站 自己做网站建设用什么开源程序好