1. 程式人生 > >C#讀取xml配置檔案

C#讀取xml配置檔案

  一、配置xml  
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <Section Name="system">
    <Key Name="srcPath" value="E:\EDIFileTest\EDIPackageA" />    
    <Key Name="tarPath" value="E:\EDIFileTest\EDIPackageB" />
    <Key Name="savePath
" value="E:\EDIFileTest\Test.csv" /> </Section> </configuration>
View Code

 

Section的Name值可以自定義,可以有多個Section節點; Section節點下的Key節點用來記錄Name、Value值,程式根據Name取Value值   二、xml幫助類  
/// <summary>
        ///
獲取XML配置檔案的值 /// </summary> /// <param name="section"></param> /// <param name="key"></param> /// <returns></returns> public static string getValue(string section, string key) { string retValue = string.Empty; XmlDocument xd
= new XmlDocument(); xd.Load(configlFile); XmlElement xe = xd.DocumentElement; if (xe.Name == "configuration") { //根據固定的文件結構查詢指定配置項 foreach (System.Xml.XmlLinkedNode xcea in xe.ChildNodes) { if (xcea.NodeType != System.Xml.XmlNodeType.Element) //如果不是元素,繼續 { continue; } System.Xml.XmlElement xce = (System.Xml.XmlElement)xcea; if ((xce.NodeType == System.Xml.XmlNodeType.Element) && (xce.HasAttributes) && (xce.Name=="Section" )) { if (xce.Attributes[0].Name == "Name" && xce.Attributes[0].Value == section) // 通過屬性判斷當前元素是否是需要查詢的配置項 { foreach (System.Xml.XmlLinkedNode xccea in xce.ChildNodes) { if (xccea.NodeType != System.Xml.XmlNodeType.Element) //如果不是元素,繼續 { continue; } System.Xml.XmlElement xcce = (System.Xml.XmlElement)xccea; if (xcce.NodeType == System.Xml.XmlNodeType.Element && xcce.HasAttributes && xcce.Name == "Key") { if (xcce.Attributes[0].Name == "Name" && xcce.Attributes[0].Value == key) { if (string.IsNullOrEmpty(retValue)) { retValue = xcce.Attributes[1].Value; } else { retValue = retValue + "," + xcce.Attributes[1].Value; } } } } } } } } return removeRightComma(retValue); }
View Code

 

三、程式呼叫

string srcPath = XMLConfig.getValue("system", "srcPath");