2013-06-04 39 views
0
<City title="CityOne"> 
    <Companies title="Comp1"> 
    <Company>A</Company> 
    <Company>P</Company> 
    <Company>R</Company> 
    </Companies> 
    <Companies title="Comp2"> 
    <Company>D</Company> 
    <Company>F</Company> 
    <Company>H</Company> 
    </Companies> 
</City> 

像第一個創建文件夾CityOne然後在那兩個文件夾下Comp1 & Comp2。然後在它們下面的文件夾A,P,R(在Comp1下)D,F,H(在Comp2下)。閱讀xml&創建目錄C#

請讓我知道如何做同樣的在C#

回答

1
string Rootpath = "C:\\MyFolder"; 
string xml = "<City title='CityOne'>" 
        + "<Companies title='Comp1'>" 
        + "<Company>A</Company>" 
        + "<Company>P</Company>" 
        + "<Company>R</Company>" 
        + "</Companies>" 
        + "<Companies title='Comp2'>" 
        + "<Company>D</Company>" 
        + "<Company>F</Company>" 
        + "<Company>H</Company>" 
        + "</Companies>" 
        + "</City>"; 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(xml); 

XmlNodeList xmlFolderCity = doc.SelectNodes("//City"); 
for (int counter1 = 0; counter1 < xmlFolderCity.Count; counter1++) 
{ 
    string CityFolder = xmlFolderCity[counter1].Attributes["title"].InnerText; 
    if (!System.IO.Directory.Exists(Rootpath + "\\" + CityFolder)) 
    { 
     System.IO.Directory.CreateDirectory(Rootpath + "\\" + CityFolder); 
    } 

    XmlNodeList xmlCompanyGroup = xmlFolderCity[counter1].SelectNodes("//Companies"); 
    for (int counter2 = 0; counter2 < xmlCompanyGroup.Count; counter2++) 
    { 
     string CompanyGroupFolder = xmlCompanyGroup[counter2].Attributes["title"].InnerText; 
     if (!System.IO.Directory.Exists(Rootpath + "\\" + CityFolder + "\\" + CompanyGroupFolder)) 
     { 
      System.IO.Directory.CreateDirectory(Rootpath + "\\" + CityFolder + "\\" + CompanyGroupFolder); 
     } 

     XmlNodeList xmlCompany = xmlCompanyGroup[counter2].ChildNodes; 
     for (int counter3 = 0; counter3 < xmlCompany.Count; counter3++) 
     { 
      string CompanyFolder = xmlCompany[counter3].InnerText; 
      if (!System.IO.Directory.Exists(Rootpath + "\\" + CityFolder + "\\" + CompanyGroupFolder + "\\" + CompanyFolder)) 
      { 
       System.IO.Directory.CreateDirectory(Rootpath + "\\" + CityFolder + "\\" + CompanyGroupFolder + "\\" + CompanyFolder); 
      } 

     } 
    } 
}