⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlcontrol.cs

📁 HR系统,人事,能力素质,考勤,薪资等,AJAX,ASP.NET
💻 CS
字号:
using System;
using System.Data;
using System.Xml;
using System.IO;


namespace iSun.Common.XmlFunc
{
	/// <summary>
	/// 公司:路路發互動網路有限公司
	/// 作者:不詳
	/// 修改:江懷玉
	/// 修改日期:2006-08-08
	/// 用途:Xml操作組件
	/// 說明:此类由网上获取,用于进行简单的XML文件操作
	/// </summary>
	public class XmlControls
	{
		protected string strXmlFile;
		protected XmlDocument objXmlDoc = new XmlDocument();
		
		public XmlControls(string XmlFile)
		{
			//
			// TODO: 在這裡加入建構函式的程式碼
			//
			try
			{
				objXmlDoc.Load(XmlFile);
			}
			catch (System.Exception ex)
			{
				throw ex;
			}
			strXmlFile = XmlFile;
		}
		public XmlControls()
		{
		}

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

		public DataView GetData2(string XmlPathNode)
		{
			//查找數據。返回一個DataView
			DataSet ds = new DataSet();
			try
			{
				XmlNodeList list = objXmlDoc.SelectNodes(XmlPathNode);
				foreach (XmlNode node in list)
				{
					StringReader read= new StringReader(node.OuterXml);
					ds.ReadXml(read);
				}
				return ds.Tables[0].DefaultView;
			}
			catch
			{
				return new DataView();
			}
		}
		
		/// <summary>
		/// 通过节点路径获取结果
		/// </summary>
		/// <param name="XmlPathNode">节点路径</param>
		/// <returns>DataTable</returns>
		public DataTable GetDataTable(string XmlPathNode)
		{
			DataSet ds = GetDataSet(XmlPathNode);
			if (ds != null)
			{
				return ds.Tables[0];
			}
			return null;
		}
		
		/// <summary>
		/// 返回DataSet
		/// </summary>
		/// <param name="XmlPathNode">节点路径</param>
		/// <returns>DataSet</returns>
		public DataSet GetDataSet(string XmlPathNode)
		{
			DataSet ds = new DataSet();
			try
			{
				XmlNodeList list = objXmlDoc.SelectNodes(XmlPathNode);
				foreach (XmlNode node in list)
				{
					StringReader read= new StringReader(node.OuterXml);
					ds.ReadXml(read);
				}
				return ds;
			}
			catch
			{
				return null;
			}
		}

		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 XmlNode GetNode(string Node)
		{
			try
			{
				XmlNode objNode = objXmlDoc.SelectSingleNode(Node);
				return objNode;
			}
			catch(System.Exception e)
			{
				throw e ;
			}
		}

		public string GetNodeAttribute(string Node,string Attribute)
		{
			try
			{
				XmlNode objNode = objXmlDoc.SelectSingleNode(Node);
				return objNode.Attributes[Attribute].Value;
			}
			catch(System.Exception e)
			{
				throw e ;				
			}
		}
 


		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();

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -