XML操作类

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


你可能感兴趣的:(xml)