Dev Dhingra
Dev Dhingra

Reputation: 11

Read xml & create directory C#

<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>

Like first create folder CityOne then under that two folders Comp1 & Comp2. Then under them respective folders A,P,R (under Comp1) D,F,H (under Comp2).

Please let me know how to do the same in C#

Upvotes: 0

Views: 675

Answers (1)

Ankit
Ankit

Reputation: 11

 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);
            }

        }
    }
}

Upvotes: 1

Related Questions