⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmleditor.cs

📁 ESRI scheme 文件投影修改
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace ChangeXMLPrj
{
    public  class XMLEditor
    {
        private string mXmlFullName;

        private XmlDocument docmodel = null;

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="xmlFullName">xml文件名称(含路径),不能为空</param>
        public XMLEditor(string xmlFullName)
        {
            if (string.IsNullOrEmpty(xmlFullName))
            {
                throw new Exception("Parameter fullName could not be null or empty!");
            }

            mXmlFullName = xmlFullName;
            docmodel = new XmlDocument();
            docmodel.Load(mXmlFullName);
        }

        /// <summary>
        /// 获取指定节点tag
        /// </summary>
        /// <param name="tag"></param>
        /// <returns></returns>
        public XmlNode[] getNodeWithTag(string tag)
        {
            try
            {
                XmlNodeList nodelist = docmodel.GetElementsByTagName(tag);//SelectNodes(tag);
                XmlNode[] list = new XmlNode[nodelist.Count];
                for (int i = 0; i < nodelist.Count; i++)
                {
                    list[i] = nodelist.Item(i);
                }
                return list;
            }
            catch (Exception ex)
            {
                throw new ArgumentNullException("Doc file!"+  "  "+ex.Message);
            }
            return null;
        }

        /// <summary>
        /// 关闭文档
        /// </summary>
        /// <param name="dosave"></param>
        public void CloseXMLDoc(bool dosave)
        {
            try
            {
                if (docmodel == null) return;
                if (dosave)
                {
                    docmodel.Save(mXmlFullName);
                }
                docmodel = null;
            }
            catch (Exception ex)
            {
                throw new ArgumentException("daw");
            }
           
        }

        /// <summary>
        /// 获得节点元素值
        /// 注意:若存在同名节点,获取的是同名节点中最后一个节点
        /// </summary>
        /// <param name="elementName">节点元素名称</param>
        /// <returns>元素值字符串</returns>
        public string GetElementString(string elementName)
        {
            try
            {
                // 检查参数

                if (string.IsNullOrEmpty(elementName))
                {
                }
                XmlTextReader xtr;
                xtr = new XmlTextReader(mXmlFullName);

                string elementString = "";
                while (xtr.Read())
                {
                    if (elementName == xtr.Name)
                    {
                        elementString = xtr.ReadElementContentAsString();
                    }
                }

                xtr.Close();
                return elementString;
            }
            catch (Exception ex)
            {
                throw new Exception("" + ex.Source);
                //return null;
            }
        }

        /// <summary>
        /// 设置节点元素值
        /// 注意:若存在同名节点,获取的是同名节点中最后一个节点
        /// </summary>
        /// <param name="parentNodeName">父节点元素名称</param>
        /// <param name="childNodeName">该节点元素名称</param>
        /// <param name="value">元素值字符串</param>
        public void SetElementString(string parentNodeName, string childNodeName, string value)
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(mXmlFullName);
            XmlNodeList nodeList = xmlDoc.SelectSingleNode(parentNodeName).ChildNodes;
            foreach (XmlNode xn in nodeList)
            {
                if (childNodeName == xn.Name)
                {
                    xn.InnerText = value;
                    xmlDoc.Save(mXmlFullName);
                    return;
                }
            }
        }

        public bool  UpdateXmlRefTypeAttrbution(XmlNode node,string value)
        {
            string tag = "xsi:type";
            if (node.Attributes.Count == 0 || node.Attributes[tag] == null) return false;
            node.Attributes[tag].Value = value;
            return true;
        }

        public bool UpdateChildValue(XmlNode node, string childname, string childInner)
        {
            if (node.HasChildNodes == false)
            {
                return false;
            }
            
            for (int i = 0; i < node.ChildNodes.Count; i++)
            {
                if (node.ChildNodes[i].Name.ToUpper() == childname.ToUpper())
                {
                    node.ChildNodes[i].InnerText = childInner;
                    return true;
                }
            }
            XmlElement ele= docmodel.CreateElement("WKT");
            ele.InnerText=childInner;
            node.InsertBefore(ele as XmlNode,node.ChildNodes[0]);
            return true;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -