• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ASP.net(C#)]XML操作类(修改)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
类如下:

  1  public class XmlUtility
  2     {
  3         protected string strXmlFile;
  4         protected XmlDocument objXmlDoc = new XmlDocument();
  5 
  6         public XmlUtility(string XmlFile)
  7         {
  8             try
  9             {
 10                 if (!File.Exists(XmlFile))
 11                 {
 12                     CreatXmlFile(XmlFile);
 13                 }
 14                 objXmlDoc.Load(XmlFile);
 15 
 16             }
 17             catch (System.Exception ex)
 18             {
 19                 throw ex;
 20             }
 21             strXmlFile = XmlFile;
 22         }
 23         protected void CreatXmlFile(string file)
 24         {
 25             XmlTextWriter writer = new
 26             XmlTextWriter(file, Encoding.UTF8);
 27 
 28             // start writing!
 29             writer.WriteStartDocument();
 30             writer.WriteStartElement("Root");
 31             writer.WriteEndElement();
 32             writer.WriteEndDocument();
 33             writer.Close();
 34         }
 35         /// <summary>
 36         /// 查找数据。返回一个DataSet 多条 
 37         /// </summary>
 38         /// <param name="XmlPathNode">结点路径</param>
 39         /// <returns></returns>
 40         public DataSet GetData(string XmlPathNode)
 41         {
 42             //查找数据。返回一个DataSet 
 43             DataSet ds = new DataSet();
 44             //=========多个=================
 45             foreach(XmlNode xmlnode in objXmlDoc.SelectNodes(XmlPathNode))
 46             {
 47                 StringReader read = new StringReader(xmlnode.OuterXml);
 48                 ds.ReadXml(read);
 49             }
 50             //==============================
 51             return ds;
 52         }
 53         /// <summary>
 54         /// 查找数据。返回一个DataSet 单条
 55         /// </summary>
 56         /// <param name="XmlPathNode"></param>
 57         /// <returns></returns>
 58         public DataSet GetDataSingle(string XmlPathNode)
 59         {
 60             //查找数据。返回一个DataSet 
 61             DataSet ds = new DataSet();
 62             //==========单个================
 63             StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
 64             ds.ReadXml(read);
 65             //==============================
 66             return ds;
 67         }
 68         /// <summary>
 69         /// 更新节点内容
 70         /// </summary>
 71         /// <param name="XmlPathNode"></param>
 72         /// <param name="Content"></param>
 73         public void Replace(string XmlPathNode, string Content)
 74         {
 75             //更新节点内容。 
 76             objXmlDoc.SelectSingleNode(XmlPathNode).InnerText = Content;
 77         }
 78         /// <summary>
 79         /// 删除一个节点
 80         /// </summary>
 81         /// <param name="Node"></param>
 82         public void Delete(string Node)
 83         {
 84             //删除一个节点。 
 85             string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
 86             objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
 87         }
 88         /// <summary>
 89         /// 插入一个节点和此节点的一子节点
 90         /// </summary>
 91         /// <param name="MainNode"></param>
 92         /// <param name="ChildNode"></param>
 93         /// <param name="Element"></param>
 94         /// <param name="Content"></param>
 95         public void InsertNode(string MainNode, string ChildNode, string Element, string Content)
 96         {
 97             //插入一个节点和此节点的一子节点。 
 98             XmlNode objRootNode = objXmlDoc.SelectSingleNode(MainNode);
 99             XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);
100             objRootNode.AppendChild(objChildNode);
101             XmlElement objElement = objXmlDoc.CreateElement(Element);
102             objElement.InnerText = Content;
103             objChildNode.AppendChild(objElement);
104         }
105         /// <summary>
106         /// 插入一个节点,带一属性
107         /// </summary>
108         /// <param name="MainNode"></param>
109         /// <param name="Element"></param>
110         /// <param name="Attrib"></param>
111         /// <param name="AttribContent"></param>
112         /// <param name="Content"></param>
113         public void InsertElement(string MainNode, string Element, string Attrib, string AttribContent, string Content)
114         {
115             //插入一个节点,带一属性。 
116             XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
117             XmlElement objElement = objXmlDoc.CreateElement(Element);
118             objElement.SetAttribute(Attrib, AttribContent);
119             objElement.InnerText = Content;
120             objNode.AppendChild(objElement);
121         }
122         /// <summary>
123         /// 插入一个节点,不带属性
124         /// </summary>
125         /// <param name="MainNode"></param>
126         /// <param name="Element"></param>
127         /// <param name="Content"></param>
128         public void InsertElement(string MainNode, string Element, string Content)
129         {
130             XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
131             XmlElement objElement = objXmlDoc.CreateElement(Element);
132             objElement.InnerText = Content;
133             objNode.AppendChild(objElement);
134         }
135         /// <summary>
136         /// 保存文件
137         /// </summary>
138         public void Save()
139         {
140             //保存文件。 
141             try
142             {
143                 objXmlDoc.Save(strXmlFile);
144             }
145             catch (System.Exception ex)
146             {
147                 throw ex;
148             }
149             objXmlDoc = null;
150         }
151     }
=========================================================

实例应用:

string strXmlFile = Server.MapPath("TestXml.xml");
XmlControl xmlTool 
= new XmlControl(strXmlFile);

// 数据显示 条件:节点BID=1所有数据
// dgList.DataSource = xmlTool.GetData("Book/Authors[BID=\"1\"]").Tables[0];;
// dgList.DataBind();

// 更新元素內容 条件:节点BID=2
// xmlTool.Replace("Book/Authors[BID=\"2\"]/Content","ppppppp");
// xmlTool.Save();

// 添加一个新节点 条件:节点BID=4
// xmlTool.InsertNode("Book","Author","BID","4");
// xmlTool.InsertElement("Book/Author[BID=\"4\"]","Content","aaaaaaaaa");
// xmlTool.InsertElement("Book/Author[BID=\"4\"]","Title","Sex","man","iiiiiiii");
// xmlTool.Save();

// 删除一个指定节点的所有內容和属性 条件:节点BID=4
// xmlTool.Delete("Book/Author[BID=\"4\"]");
// xmlTool.Save();

// 删除一个指定节点的子节点 条件:节点BID内容为4
// xmlTool.Delete("Book/Authors[BID=\"4\"]");
// xmlTool.Save();

// 删除一个指定节点的子节点 条件:节点AuthorsBID的属性Booktype=9
// xmlTool.Delete("Book/Authors[@Booktype=\"9\"]");
// xmlTool.Save();


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
CodeSmith,SqlServer,C#中的类型对照发布时间:2022-07-10
下一篇:
多重影分身——C#中多线程的使用三(调用方法和传参)发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap