C#实现的XML操作类实例
内容摘要
本文实例讲述了C#实现的XML操作类。分享给大家供大家参考。具体如下:
这里讲述了C#写的一个XML操作类,包括读取/插入/修改/删除。
using System;
using System.Data;
using
这里讲述了C#写的一个XML操作类,包括读取/插入/修改/删除。
using System;
using System.Data;
using
文章正文
本文实例讲述了C#实现的XML操作类。分享给大家供大家参考。具体如下:
这里讲述了C#写的一个XML操作类,包括读取/插入/修改/删除。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml; namespace PuTianCheng { /// <summary> /// XmlHelper 的摘要说明 /// </summary> public class XmlHelper { public XmlHelper() { } /// <summary> /// 读取数据 /// </summary> /// <param name="path">路径</param> /// <param name="node">节点</param> /// <param name="attribute">属性名,非空时返回该属性值,否则返回串联值</param> /// <returns>string</returns> public static string Read(string path, string node, string attribute) { string value = "" ; try { XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNode xn = doc.SelectSingleNode(node); value = (attribute.Equals( "" ) ? xn.InnerText : xn.Attributes[attribute].Value); } catch { } return value; } /// <summary> /// 插入数据 /// </summary> /// <param name="path">路径</param> /// <param name="node">节点</param> /// <param name="element">元素名,非空时插入新元素,否则在该元素中插入属性</param> /// <param name="attribute">属性名,非空时插入该元素属性值,否则插入元素值</param> /// <param name="value">值</param> /// <returns></returns> public static void Insert(string path, string node, string element, string attribute, string value) { try { XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNode xn = doc.SelectSingleNode(node); if (element.Equals( "" )) { if (!attribute.Equals( "" )) { XmlElement xe = (XmlElement)xn; xe.SetAttribute(attribute, value); } } else { XmlElement xe = doc.createElement_x(element); if (attribute.Equals( "" )) xe.InnerText = value; else xe.SetAttribute(attribute, value); xn.AppendChild(xe); } doc.Save(path); } catch { } } /// <summary> /// 修改数据 /// </summary> /// <param name="path">路径</param> /// <param name="node">节点</param> /// <param name="attribute">属性名,非空时修改该节点属性值,否则修改节点值</param> /// <param name="value">值</param> /// <returns></returns> public static void Update(string path, string node, string attribute, string value) { try { XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNode xn = doc.SelectSingleNode(node); XmlElement xe = (XmlElement)xn; if (attribute.Equals( "" )) xe.InnerText = value; else xe.SetAttribute(attribute, value); doc.Save(path); } catch { } } /// <summary> /// 删除数据 /// </summary> /// <param name="path">路径</param> /// <param name="node">节点</param> /// <param name="attribute">属性名,非空时删除该节点属性值,否则删除节点值</param> /// <param name="value">值</param> /// <returns></returns> public static void Delete (string path, string node, string attribute) { try { XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNode xn = doc.SelectSingleNode(node); XmlElement xe = (XmlElement)xn; if (attribute.Equals( "" )) xn.ParentNode.RemoveChild(xn); else xe.RemoveAttribute(attribute); doc.Save(path); } catch { } } } } |
XmlFile.xml:
1 2 | <?xml version= "1.0" encoding= "utf-8" ?> <Root /> |
使用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | string xml = 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" , "PuTianCheng Studio" ); //读取元素值 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#程序设计有所帮助。
代码注释