在日常开发中常常遇到操作xml文件,利用DataSet.Tables["表名"].WriteXml(Server.MapPath("~/文件名.xml"));固然简单,但使用起来总感觉不那么的自在,于是,自己动手吧。
1.移出XML文件所有节点和属性
/// <summary> /// 移出XML文件所有节点和属性 /// </summary> public void RemoveAll() { XmlDocument xd = new XmlDocument(); xd.Load(Server.MapPath("~/Sale.xml"));//加载xml文件,路径未指定时默认在当前项目环境下 if (xd != null) xd.RemoveAll(); }
2.将查询出的数据轮换成xml文件
/// <summary> /// 将查询出的数据轮换成xml文件 /// </summary> public void WriteXML() { DataTable table = productService.QueryBySpeciesDate(); XmlDocument xd = new XmlDocument(); XmlDeclaration xmldecl = xd.CreateXmlDeclaration("1.0", null, null); //写入根结点 XmlElement chart = xd.CreateElement("chart"); xd.AppendChild(chart); XmlElement categories = xd.CreateElement("categories"); chart.AppendChild(categories); foreach (DataRow r in table.Rows) { XmlElement item = xd.CreateElement("item"); item.InnerText = r["Species"].ToString(); categories.AppendChild(item); } XmlElement root = xd.DocumentElement; xd.InsertBefore(xmldecl, root); xd.Save(Server.MapPath("~/Sale.xml")); }
3.向XML文件插入新的节点和数据
/// <summary> /// 向XML文件插入新的节点和数据 /// </summary> public void InsertDataXml() { XmlDocument xd = new XmlDocument(); xd.Load(Server.MapPath("~/Sale.xml"));//加载xml文件,路径未指定时默认在当前项目环境下 XmlNode root = xd.SelectSingleNode("chart");//选择要添加子节点的items节点 XmlElement series = xd.CreateElement("series");//创建一个具有指定名称的子节点 root.AppendChild(series); XmlElement name = xd.CreateElement("name"); name.InnerText = "铂金镶嵌"; series.AppendChild(name); XmlElement data = xd.CreateElement("data"); data.InnerText = "9.295000"; series.AppendChild(data); xd.Save(Server.MapPath("~/Sale.xml")); }
ok!