国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

XML操作總結(jié)

2019-11-17 03:03:35
字體:
供稿:網(wǎng)友

xml操作總結(jié)

在開發(fā)過程中對(duì)XML的使用不是太多,要用到時(shí)候也是想辦法繞過去,最近一個(gè)同事給了一個(gè)詳細(xì)的操作。分享一下

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Xml;namespace RenShiExport{    /// <summary>    /// XMLHelper XML文檔操作管理器    /// </summary>    public class XMLHelper    {        public XMLHelper()        {            //            // TODO: 在此處添加構(gòu)造函數(shù)邏輯            //        }        #region XML文檔節(jié)點(diǎn)查詢和讀取        /// <summary>        /// 選擇匹配XPath表達(dá)式的第一個(gè)節(jié)點(diǎn)XmlNode.        /// </summary>        /// <param name="xmlFileName">XML文檔完全文件名(包含物理路徑)</param>        /// <param name="xpath">要匹配的XPath表達(dá)式(例如:"http://節(jié)點(diǎn)名//子節(jié)點(diǎn)名")</param>        /// <returns>返回XmlNode</returns>        public static XmlNode GetXmlNodeByXpath(string xmlFileName, string xpath)        {            XmlDocument xmlDoc = new XmlDocument();            try            {                xmlDoc.Load(xmlFileName); //加載XML文檔                XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);                return xmlNode;            }            catch (Exception ex)            {                return null;                //throw ex; //這里可以定義你自己的異常處理            }        }        /// <summary>        /// 選擇匹配XPath表達(dá)式的節(jié)點(diǎn)列表XmlNodeList.        /// </summary>        /// <param name="xmlFileName">XML文檔完全文件名(包含物理路徑)</param>        /// <param name="xpath">要匹配的XPath表達(dá)式(例如:"http://節(jié)點(diǎn)名//子節(jié)點(diǎn)名")</param>        /// <returns>返回XmlNodeList</returns>        public static XmlNodeList GetXmlNodeListByXpath(string xmlFileName, string xpath)        {            XmlDocument xmlDoc = new XmlDocument();            try            {                xmlDoc.Load(xmlFileName); //加載XML文檔                XmlNodeList xmlNodeList = xmlDoc.SelectNodes(xpath);                return xmlNodeList;            }            catch (Exception ex)            {                return null;                //throw ex; //這里可以定義你自己的異常處理            }        }        /// <summary>        /// 選擇匹配XPath表達(dá)式的第一個(gè)節(jié)點(diǎn)的匹配xmlAttributeName的屬性XmlAttribute.        /// </summary>        /// <param name="xmlFileName">XML文檔完全文件名(包含物理路徑)</param>        /// <param name="xpath">要匹配的XPath表達(dá)式(例如:"http://節(jié)點(diǎn)名//子節(jié)點(diǎn)名</param>        /// <param name="xmlAttributeName">要匹配xmlAttributeName的屬性名稱</param>        /// <returns>返回xmlAttributeName</returns>        public static XmlAttribute GetXmlAttribute(string xmlFileName, string xpath, string xmlAttributeName)        {            string content = string.Empty;            XmlDocument xmlDoc = new XmlDocument();            XmlAttribute xmlAttribute = null;            try            {                xmlDoc.Load(xmlFileName); //加載XML文檔                XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);                if (xmlNode != null)                {                    if (xmlNode.Attributes.Count > 0)                    {                        xmlAttribute = xmlNode.Attributes[xmlAttributeName];                    }                }            }            catch (Exception ex)            {                throw ex; //這里可以定義你自己的異常處理            }            return xmlAttribute;        }        #endregion        #region XML文檔創(chuàng)建和節(jié)點(diǎn)或?qū)傩缘奶砑印⑿薷?       /// <summary>        /// 創(chuàng)建一個(gè)XML文檔        /// </summary>        /// <param name="xmlFileName">XML文檔完全文件名(包含物理路徑)</param>        /// <param name="rootNodeName">XML文檔根節(jié)點(diǎn)名稱(須指定一個(gè)根節(jié)點(diǎn)名稱)</param>        /// <param name="version">XML文檔版本號(hào)(必須為:"1.0")</param>        /// <param name="encoding">XML文檔編碼方式</param>        /// <param name="standalone">該值必須是"yes"或"no",如果為null,Save方法不在XML聲明上寫出獨(dú)立屬性</param>        /// <returns>成功返回true,失敗返回false</returns>        public static bool CreateXmlDocument(string xmlFileName, string rootNodeName, string version, string encoding, string standalone)        {            bool isSuccess = false;            try            {                XmlDocument xmlDoc = new XmlDocument();                XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration(version, encoding, standalone);                XmlNode root = xmlDoc.CreateElement(rootNodeName);                xmlDoc.AppendChild(xmlDeclaration);                xmlDoc.AppendChild(root);                xmlDoc.Save(xmlFileName);                isSuccess = true;            }            catch (Exception ex)            {                throw ex; //這里可以定義你自己的異常處理            }            return isSuccess;        }        /// <summary>        /// 依據(jù)匹配XPath表達(dá)式的第一個(gè)節(jié)點(diǎn)來創(chuàng)建它的子節(jié)點(diǎn)(如果此節(jié)點(diǎn)已存在則追加一個(gè)新的同名節(jié)點(diǎn)        /// </summary>        /// <param name="xmlFileName">XML文檔完全文件名(包含物理路徑)</param>        /// <param name="xpath">要匹配的XPath表達(dá)式(例如:"http://節(jié)點(diǎn)名//子節(jié)點(diǎn)名</param>        /// <param name="xmlNodeName">要匹配xmlNodeName的節(jié)點(diǎn)名稱</param>        /// <param name="innerText">節(jié)點(diǎn)文本值</param>        /// <param name="xmlAttributeName">要匹配xmlAttributeName的屬性名稱</param>        /// <param name="value">屬性值</param>        /// <returns>成功返回true,失敗返回false</returns>        public static bool CreateXmlNodeByXPath(string xmlFileName, string xpath, string xmlNodeName, string innerText, string xmlAttributeName, string value)        {            bool isSuccess = false;            XmlDocument xmlDoc = new XmlDocument();            try            {                xmlDoc.Load(xmlFileName); //加載XML文檔                XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);                if (xmlNode != null)                {                    //存不存在此節(jié)點(diǎn)都創(chuàng)建                    XmlElement subElement = xmlDoc.CreateElement(xmlNodeName);                    subElement.InnerXml = innerText;                    //如果屬性和值參數(shù)都不為空則在此新節(jié)點(diǎn)上新增屬性                    if (!string.IsNullOrEmpty(xmlAttributeName) && !string.IsNullOrEmpty(value))                    {                        XmlAttribute xmlAttribute = xmlDoc.CreateAttribute(xmlAttributeName);                        xmlAttribute.Value = value;                        subElement.Attributes.Append(xmlAttribute);                    }                    xmlNode.AppendChild(subElement);                }                xmlDoc.Save(xmlFileName); //保存到XML文檔                isSuccess = true;            }            catch (Exception ex)            {                throw ex; //這里可以定義你自己的異常處理            }            return isSuccess;        }        /// <summary>        /// 依據(jù)匹配XPath表達(dá)式的第一個(gè)節(jié)點(diǎn)來創(chuàng)建或更新它的子節(jié)點(diǎn)(如果節(jié)點(diǎn)存在則更新,不存在則創(chuàng)建)        /// </summary>        /// <param name="xmlFileName">XML文檔完全文件名(包含物理路徑)</param>        /// <param name="xpath">要匹配的XPath表達(dá)式(例如:"http://節(jié)點(diǎn)名//子節(jié)點(diǎn)名</param>        /// <param name="xmlNodeName">要匹配xmlNodeName的節(jié)點(diǎn)名稱</param>        /// <param name="innerText">節(jié)點(diǎn)文本值</param>        /// <returns>成功返回true,失敗返回false</returns>        public static bool CreateOrUpdateXmlNodeByXPath(string xmlFileName, string xpath, string xmlNodeName, string innerText)        {            bool isSuccess = false;            bool isExistsNode = false;//標(biāo)識(shí)節(jié)點(diǎn)是否存在            XmlDocument xmlDoc = new XmlDocument();            try            {                xmlDoc.Load(xmlFileName); //加載XML文檔                XmlNode xmlNode = xmlDoc.SelectSingleNode(xpath);                if (xmlNode != null)                {                    //遍歷xpath節(jié)點(diǎn)下的所有子節(jié)點(diǎn)                    foreach (XmlNode node in xmlNode.ChildNodes)                    {                        if (node.Name.ToLower() == xmlNodeName.ToLower())                        {                            //存在此節(jié)點(diǎn)則更新                            node.InnerXml = innerText;                            isExistsNode = true;                            break;                        }                    }                    if (!isExistsNode)                    {                        //不存在此節(jié)點(diǎn)則創(chuàng)建                        XmlElement subElement = xmlDoc.CreateElement(xmlNodeName);                        subElement.InnerXml = innerText;                        xmlNode.AppendChild(subElement);
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 隆安县| 鄱阳县| 临泽县| 广丰县| 礼泉县| 柳河县| 枣庄市| 定南县| 都昌县| 东海县| 南岸区| 郯城县| 湘阴县| 嘉禾县| 苍山县| 郁南县| 双辽市| 延安市| 南阳市| 米林县| 七台河市| 贡嘎县| 五台县| 寿宁县| 灌南县| 常山县| 南安市| 五原县| 南岸区| 亚东县| 寿光市| 灵璧县| 靖州| 平谷区| 张家川| 宜宾市| 衡水市| 垫江县| 新晃| 东城区| 扬州市|