一个C#xml操作类

转载 2006年06月09日 19:07:00

public class XmlControl
 {
  protected string strXmlFile;
  protected XmlDocument objXmlDoc = new XmlDocument();

 

  public XmlControl(string XmlFile)
  {
   //
   // TODO: 在這裡加入建構函式的程式碼
   //
   try
   {
    objXmlDoc.Load(XmlFile);
   }
   catch (System.Exception ex)
   {
    throw ex;
   }
   strXmlFile = XmlFile;
  }

  public DataView GetData(string XmlPathNode)
  {
   //查找數據。返回一個DataView
   DataSet ds = new DataSet();
   StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
   ds.ReadXml(read);
   return ds.Tables[0].DefaultView;
  }

  public void Replace(string XmlPathNode,string Content)
  {
   //更新節點內容。
   objXmlDoc.SelectSingleNode(XmlPathNode).InnerText = Content;
  }

  public void Delete(string Node)
  {
   //刪除一個節點。
   string mainNode = Node.Substring(0,Node.LastIndexOf("/"));
   objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
  }

  public void InsertNode(string MainNode,string ChildNode,string Element,string Content)
  {
   //插入一節點和此節點的一子節點。
   XmlNode objRootNode = objXmlDoc.SelectSingleNode(MainNode);
   XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);
   objRootNode.AppendChild(objChildNode);
   XmlElement objElement = objXmlDoc.CreateElement(Element);
   objElement.InnerText = Content;
   objChildNode.AppendChild(objElement);
  }

  public void InsertElement(string MainNode,string Element,string Attrib,string AttribContent,string Content)
  {
   //插入一個節點,帶一屬性。
   XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
   XmlElement objElement = objXmlDoc.CreateElement(Element);
   objElement.SetAttribute(Attrib,AttribContent);
   objElement.InnerText = Content;
   objNode.AppendChild(objElement);
  }

  public void InsertElement(string MainNode,string Element,string Content)
  {
   //插入一個節點,不帶屬性。
   XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
   XmlElement objElement = objXmlDoc.CreateElement(Element);
   objElement.InnerText = Content;
   objNode.AppendChild(objElement);
  }

  public void Save()
  {
   //保存文檔。
   try
   {
    objXmlDoc.Save(strXmlFile);
   }
   catch (System.Exception ex)
   {
    throw ex;
   }
   objXmlDoc = null;
  }
 }

=========================================================

实例应用:

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

//   數據顯視
//   dgList.DataSource = xmlTool.GetData("Book/Authors[ISBN=/"0002/"]");
//   dgList.DataBind();

//   更新元素內容
//   xmlTool.Replace("Book/Authors[ISBN=/"0002/"]/Content","ppppppp");
//   xmlTool.Save();

//   添加一個新節點
//   xmlTool.InsertNode("Book","Author","ISBN","0004");
//   xmlTool.InsertElement("Book/Author[ISBN=/"0004/"]","Content","aaaaaaaaa");
//   xmlTool.InsertElement("Book/Author[ISBN=/"0004/"]","Title","Sex","man","iiiiiiii");
//   xmlTool.Save();

//   刪除一個指定節點的所有內容和屬性
//   xmlTool.Delete("Book/Author[ISBN=/"0004/"]");
//   xmlTool.Save();

//   刪除一個指定節點的子節點
//   xmlTool.Delete("Book/Authors[ISBN=/"0003/"]");
//   xmlTool.Save();

C#XmlHelper操作Xml文档的帮助类

using System.Xml; using System.Data;   namespace DotNet.Utilities {     ///     /// Xml的操作公共类     /...
  • luoyanqing119
  • luoyanqing119
  • 2014年01月09日 15:01
  • 6243

C#xml操作帮助类

using System.Xml; using System.Data; namespace myhelper { /// /// Xml的操作公共类 /// ...
  • zuoyefeng1990
  • zuoyefeng1990
  • 2017年03月15日 14:39
  • 171

C#XML文件操作类(二)

using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.Da...
  • Robin022
  • Robin022
  • 2014年04月19日 18:47
  • 779

c#xml文档操作类(2)

sing System; using System.Data; using System.Configuration; using System.Web; using System.Web.S...
  • zhujunxxxxx
  • zhujunxxxxx
  • 2014年01月19日 13:31
  • 876

C# XML文件操作类XmlHelper类的完整代码

C# XML文件操作类XmlHelper类的完整代码:   using System; using System.Collections; using System.Xml; namespace Co...
  • chaiwangbing
  • chaiwangbing
  • 2016年09月22日 16:30
  • 5218

C#XML文件操作2

首先声明,本博主采用的是vs20151.创建工程和文本文件skill.txt:
  • w1594731007
  • w1594731007
  • 2017年03月29日 20:59
  • 122

C#打开xml,并绑定TreeView

XML读取与写入  这个代码有个问题就是XML一个节点的属性 xNode.Attributes不能显示出来   //加载XML文件,并在TreeView上显示         publi...
  • he3359893
  • he3359893
  • 2013年11月07日 10:48
  • 1365

C#XML一个实例

这是一个用c#控制台程序下,  用XmlDocument 进行XML操作的的例子,包含了查询、增加、修改、删除、保存的基本操作。较完整的描述了一个XML的整个操作流程。适合刚入门.net XML操作的...
  • likingsn
  • likingsn
  • 2013年08月15日 09:19
  • 632

C#XML文件操作

首先声明,本博主采用的是vs20151.创建工程和文本文件SkillInfo.txt: 2 天下无双 123 3 永恒零度...
  • w1594731007
  • w1594731007
  • 2017年03月29日 20:45
  • 152

new一个对象,java虚拟机做了什么?

这个问题一直困扰我很久,面试被问到好多次,但是都没有一个清晰的认识,然后最近在回头过来看下java基础回味下。当刚写完一个java程序,main方法new一个对象,内存做了如下操作: 初期:...
  • mrb1289798400
  • mrb1289798400
  • 2017年07月21日 12:43
  • 288
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个C#xml操作类
举报原因:
原因补充:

(最多只允许输入30个字)