{"id":666,"date":"2009-10-07T09:35:00","date_gmt":"2009-10-07T01:35:00","guid":{"rendered":""},"modified":"2013-11-17T12:48:05","modified_gmt":"2013-11-17T04:48:05","slug":"c%e6%93%8d%e4%bd%9cxml%e7%b1%bb","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/666.html","title":{"rendered":"C#\u64cd\u4f5cXML\u7c7b"},"content":{"rendered":"<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n    #region Xml\u6587\u4ef6\u64cd\u4f5c\u7c7b \r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ Xml\u6587\u4ef6\u64cd\u4f5c\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public class XmlControl\r\n    {\r\n        protected string strXmlFile;\r\n        protected XmlDocument objXmlDoc = new XmlDocument();\r\n\r\n        public XmlControl(string XmlFile)\r\n        {\r\n            \/\/\r\n            \/\/ TODO: \u5728\u8fd9\u91cc\u52a0\u5165\u5efa\u9020\u51fd\u6570\u548c\u7a0b\u5e8f\u7801\r\n            \/\/\r\n            try\r\n            {\r\n                objXmlDoc.Load(XmlFile);\r\n            }\r\n            catch (System.Exception ex)\r\n            {\r\n                throw ex;\r\n            }\r\n            strXmlFile = XmlFile;\r\n        }\r\n\r\n        public DataView GetData(string XmlPathNode)\r\n        {\r\n            \/\/\u67e5\u627e\u6570\u636e\uff0c\u8fd4\u56de\u4e00\u4e2aDataView\r\n            DataSet ds = new DataSet();\r\n            StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);\r\n            ds.ReadXml(read);\r\n            return ds.Tables&#x5B;0].DefaultView;\r\n\r\n        }\r\n\r\n        \/\/\u83b7\u53d6\u5185\u5bb9\r\n        public string GetValue(string XmlPathNode, string sElement)\r\n        {\r\n            \/\/\u9009\u62e9\u8282\u70b9\r\n            XmlNode xNode;\r\n            XmlElement xElem;\r\n            xNode = objXmlDoc.SelectSingleNode(XmlPathNode);\r\n            if (xNode != null)\r\n            {\r\n                xElem = (XmlElement)xNode.SelectSingleNode(sElement);\r\n                if (xElem != null)\r\n                {\r\n                    return xElem.InnerText.Trim();\r\n                }\r\n                else\r\n                    return &quot;&quot;;\r\n            }\r\n            else\r\n                return &quot;&quot;;\r\n\r\n        }\r\n\r\n        public void Replace(string XmlPathNode, string Content)\r\n        {\r\n            \/\/\u66f4\u65b0\u8282\u70b9\u5167\u5bb9\u3002\r\n            objXmlDoc.SelectSingleNode(XmlPathNode).InnerText = Content;\r\n        }\r\n\r\n        public void Delete(string Node)\r\n        {\r\n            \/\/\u522a\u9664\u4e00\u4e2a\u8282\u70b9\u3002\r\n            string mainNode = Node.Substring(0, Node.LastIndexOf(&quot;\/&quot;));\r\n            objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));\r\n        }\r\n\r\n        public void InsertNode(string MainNode, string ChildNode, string Element, string Content)\r\n        {\r\n            \/\/\u63d2\u5165\u4e00\u8282\u70b9\u548c\u6b64\u8282\u70b9\u4e00\u4e2a\u5b50\u8282\u70b9\u3002\r\n            XmlNode objRootNode = objXmlDoc.SelectSingleNode(MainNode);\r\n            XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);\r\n            objRootNode.AppendChild(objChildNode);\r\n            XmlElement objElement = objXmlDoc.CreateElement(Element);\r\n            objElement.InnerText = Content;\r\n            objChildNode.AppendChild(objElement);\r\n        }\r\n\r\n        public void InsertElement(string MainNode, string Element, string Attrib, string AttribContent, string Content)\r\n        {\r\n            \/\/\u63d2\u5165\u4e00\u8282\u70b9\uff0c\u5e26\u4e00\u5c5e\u6027\u3002\r\n            XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);\r\n            XmlElement objElement = objXmlDoc.CreateElement(Element);\r\n            objElement.SetAttribute(Attrib, AttribContent);\r\n            objElement.InnerText = Content;\r\n            objNode.AppendChild(objElement);\r\n        }\r\n\r\n        public void InsertElement(string MainNode, string Element, string Content)\r\n        {\r\n            \/\/\u63d2\u5165\u4e00\u8282\u70b9\uff0c\u4e0d\u5e26\u5c5e\u6027\u3002\r\n            XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);\r\n            XmlElement objElement = objXmlDoc.CreateElement(Element);\r\n            objElement.InnerText = Content;\r\n            objNode.AppendChild(objElement);\r\n        }\r\n\r\n        public void Save()\r\n        {\r\n            \/\/\u4fdd\u5b58\u6587\u6863\u3002\r\n            try\r\n            {\r\n                objXmlDoc.Save(strXmlFile);\r\n            }\r\n            catch (System.Exception ex)\r\n            {\r\n                throw ex;\r\n            }\r\n            objXmlDoc = null;\r\n        }\r\n    }\r\n#endregion\r\n\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>#region Xml\u6587\u4ef6\u64cd\u4f5c\u7c7b \/\/\/ &lt;summary&gt; \/\/\/ Xml\u6587\u4ef6\u64cd\u4f5c \/\/\/ &#038;l [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-666","post","type-post","status-publish","format-standard","hentry","category-code_related"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/comments?post=666"}],"version-history":[{"count":1,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/666\/revisions"}],"predecessor-version":[{"id":4601,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/666\/revisions\/4601"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}