C#实现的XML操作类实例
本文实例讲述了C#实现的XML操作类。分享给大家供大家参考。具体如下:
这里讲述了C#写的一个XML操作类,包括读取/插入/修改/删除。
usingSystem; usingSystem.Data; usingSystem.Configuration; usingSystem.Web; usingSystem.Web.Security; usingSystem.Web.UI; usingSystem.Web.UI.WebControls; usingSystem.Web.UI.WebControls.WebParts; usingSystem.Web.UI.HtmlControls; usingSystem.Xml; namespacePuTianCheng { ///<summary> ///XmlHelper的摘要说明 ///</summary> publicclassXmlHelper { publicXmlHelper() { } ///<summary> ///读取数据 ///</summary> ///<paramname="path">路径</param> ///<paramname="node">节点</param> ///<paramname="attribute">属性名,非空时返回该属性值,否则返回串联值</param> ///<returns>string</returns> publicstaticstringRead(stringpath,stringnode,stringattribute) { stringvalue=""; try { XmlDocumentdoc=newXmlDocument(); doc.Load(path); XmlNodexn=doc.SelectSingleNode(node); value=(attribute.Equals("")?xn.InnerText:xn.Attributes[attribute].Value); } catch{} returnvalue; } ///<summary> ///插入数据 ///</summary> ///<paramname="path">路径</param> ///<paramname="node">节点</param> ///<paramname="element">元素名,非空时插入新元素,否则在该元素中插入属性</param> ///<paramname="attribute">属性名,非空时插入该元素属性值,否则插入元素值</param> ///<paramname="value">值</param> ///<returns></returns> publicstaticvoidInsert(stringpath,stringnode,stringelement,stringattribute,stringvalue) { try { XmlDocumentdoc=newXmlDocument(); doc.Load(path); XmlNodexn=doc.SelectSingleNode(node); if(element.Equals("")) { if(!attribute.Equals("")) { XmlElementxe=(XmlElement)xn; xe.SetAttribute(attribute,value); } } else { XmlElementxe=doc.createElement_x(element); if(attribute.Equals("")) xe.InnerText=value; else xe.SetAttribute(attribute,value); xn.AppendChild(xe); } doc.Save(path); } catch{} } ///<summary> ///修改数据 ///</summary> ///<paramname="path">路径</param> ///<paramname="node">节点</param> ///<paramname="attribute">属性名,非空时修改该节点属性值,否则修改节点值</param> ///<paramname="value">值</param> ///<returns></returns> publicstaticvoidUpdate(stringpath,stringnode,stringattribute,stringvalue) { try { XmlDocumentdoc=newXmlDocument(); doc.Load(path); XmlNodexn=doc.SelectSingleNode(node); XmlElementxe=(XmlElement)xn; if(attribute.Equals("")) xe.InnerText=value; else xe.SetAttribute(attribute,value); doc.Save(path); } catch{} } ///<summary> ///删除数据 ///</summary> ///<paramname="path">路径</param> ///<paramname="node">节点</param> ///<paramname="attribute">属性名,非空时删除该节点属性值,否则删除节点值</param> ///<paramname="value">值</param> ///<returns></returns> publicstaticvoidDelete(stringpath,stringnode,stringattribute) { try { XmlDocumentdoc=newXmlDocument(); doc.Load(path); XmlNodexn=doc.SelectSingleNode(node); XmlElementxe=(XmlElement)xn; if(attribute.Equals("")) xn.ParentNode.RemoveChild(xn); else xe.RemoveAttribute(attribute); doc.Save(path); } catch{} } } }
XmlFile.xml:
<?xmlversion="1.0"encoding="utf-8"?> <Root/>
使用方法:
stringxml=Server.MapPath("XmlFile.xml"); //插入元素 XmlHelper.Insert(xml,"/Root","Studio","",""); //插入元素/属性 XmlHelper.Insert(xml,"/Root/Studio","Site","Name","小路工作室"); XmlHelper.Insert(xml,"/Root/Studio","Site","Name","丁香鱼工作室"); XmlHelper.Insert(xml,"/Root/Studio","Site","Name","谱天城工作室"); XmlHelper.Insert(xml,"/Root/Studio/Site[@Name='谱天城工作室']","Master","","红尘静思"); //插入属性 XmlHelper.Insert(xml,"/Root/Studio/Site[@Name='小路工作室']","","Url","http://www.wzlu.com/"); XmlHelper.Insert(xml,"/Root/Studio/Site[@Name='丁香鱼工作室']","","Url","http://www.luckfish.net/"); XmlHelper.Insert(xml,"/Root/Studio/Site[@Name='谱天城工作室']","","Url","http://www.putiancheng.com/"); //修改元素值 XmlHelper.Update(xml,"/Root/Studio/Site[@Name='谱天城工作室']/Master","","RedDust"); //修改属性值 XmlHelper.Update(xml,"/Root/Studio/Site[@Name='谱天城工作室']","Url","http://www.putiancheng.net/"); XmlHelper.Update(xml,"/Root/Studio/Site[@Name='谱天城工作室']","Name","PuTianChengStudio"); //读取元素值 Response.Write("<div>"+XmlHelper.Read(xml,"/Root/Studio/Site/Master","")+"</div>"); //读取属性值 Response.Write("<div>"+XmlHelper.Read(xml,"/Root/Studio/Site","Url")+"</div>"); //读取特定属性值 Response.Write("<div>"+XmlHelper.Read(xml,"/Root/Studio/Site[@Name='丁香鱼工作室']","Url")+"</div>"); //删除属性 XmlHelper.Delete(xml,"/Root/Studio/Site[@Name='小路工作室']","Url"); //删除元素 XmlHelper.Delete(xml,"/Root/Studio","");
希望本文所述对大家的C#程序设计有所帮助。