C#读写XML文件

 读取XML文件

 首先获取config文件路径   

 static string WebApiConfigPath = ConfigurationManager.AppSettings["adsWebApi"].Trim().ToString();

其次新建XmlDocument和XmlNode 

 XmlDocument xmlDoc = new XmlDocument();
 xmlDoc.Load(WebApiConfigPath);
 XmlNode root = xmlDoc.SelectSingleNode("configuration");

循环到需要读取的那个节点获取元素

 foreach (XmlNode nodec in root)
                {
                    if (nodec.Name == "system.serviceModel")
                    {
                        foreach (XmlNode nodes in nodec)
                        {
                            if (nodes.Name == "client")
                            {
                                foreach (XmlNode nodet in nodes)
                                {
                                    string strName = nodet.Attributes["name"].Value;
                                    switch (strName)
                                    {
                                        case "IEventService":
                                            cInfos.addressEventService = nodet.Attributes["address"].Value;
                                            break;
                                        case "IControlService":
                                            cInfos.addressControlService = nodet.Attributes["address"].Value;
                                            break;
                                        case "IRealDataService":
                                            cInfos.addressRealdataService = nodet.Attributes["address"].Value;
                                            break;
                                        case "IBussinessService":
                                            cInfos.addressBussinessService = nodet.Attributes["address"].Value;
                                            break;
                                    }
                                }
                            }
                        }
                    }
                }

修改XML文件

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(WebApiConfigPath);
            XmlNode root = xmlDoc.SelectSingleNode("configuration");
            foreach (XmlNode nodec in root)
            {
                if (nodec.Name == "system.serviceModel")
                {
                    foreach (XmlNode nodes in nodec)
                    {
                        if (nodes.Name == "client")
                        {
                            foreach (XmlNode nodet in nodes)
                            {
                                //string address = GetStr(nodet.OuterXml, "address=\"", "\" binding");
                                //var posStart = address.LastIndexOf("/") + "/".Length;
                                string strName = nodet.Attributes["name"].Value;//address.Substring(posStart, address.Length - posStart);
                                switch (strName)
                                {
                                    case "IEventService":
                                        nodet.Attributes["address"].Value = "net.tcp://" + confingInfos[1] + ":" + confingInfos[2] + "/EventService";
                                        break;
                                    case "IControlService":
                                        nodet.Attributes["address"].Value = "net.tcp://" + confingInfos[1] + ":" + confingInfos[2] + "/ControlService";
                                        break;
                                    case "IRealDataService":
                                        nodet.Attributes["address"].Value = "net.tcp://" + confingInfos[1] + ":" + confingInfos[2] + "/RealdataService";
                                        break;
                                    case "IBussinessService":
                                        nodet.Attributes["address"].Value = "net.tcp://" + confingInfos[1] + ":" + confingInfos[2] + "/BussinessService";
                                        break;
                                }
                            }
                        }
                    }
                }
            }
            //需要保存修改的值
            xmlDoc.Save(WebApiConfigPath);
            xmlDoc = null;

 

你可能感兴趣的:(C#)