博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

asp.net XML操作类

Posted on 2008-07-26 09:49  codingsilence  阅读(327)  评论(0编辑  收藏  举报
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();