Как создать следующий XML - PullRequest
0 голосов
/ 14 июня 2010

Я хочу сгенерировать XML для следующей структуры типа дерева. я прикрепил картинку. сгенерированный xml должен быть

 <services>
  <service>
    <name>Service 1</name>
    <categories>
      <category>
        <name>Cateogry 1</name>
        <methods>
          <method>
            <name>Method 1</name>
          </method>
        </methods>
      </category>
    </categories>
  </service>
  <service>
    <name>Service 2</name>
    <categories>
      <category>
        <name>Cateogry 1</name>
        <methods>
          <method>
            <name>Method 1</name>
          </method>
        </methods>
      </category>
    </categories>
  </service>
  <service>
    <name>Service 3</name>
    <categories>
      <category>
        <name>Cateogry 1</name>
        <methods>
          <method>
            <name>Method 1</name>
          </method>
        </methods>
      </category>
    </categories>
  </service>
</services>

Изображение дерева http://i50.tinypic.com/2ce5b1s.jpg

1 Ответ

0 голосов
/ 15 июня 2010

Я решил свою проблему:)

XElement elServices = new XElement("services");            

            foreach (TreeNode serviceNode in treeView1.Nodes)
            {
                XElement elService = new XElement("service",
                    new XElement("name", serviceNode.Text));

                XElement elCategories = new XElement("categories");

                foreach (TreeNode categoryNode in serviceNode.Nodes)
                {                    
                    XElement elCategory = new XElement("category",
                    new XElement("name", categoryNode.Text));

                    XElement elMethods = new XElement("methods");

                    foreach (TreeNode methodNode in categoryNode.Nodes)
                    {
                        XElement elMethod = new XElement("method",
                                            new XElement("name", methodNode.Text));

                        elMethods.Add(elMethod);
                    }
                    elCategory.Add(elMethods);
                    elCategories.Add(elCategory);
                }
                elService.Add(elCategories);
                elServices.Add(elService);                
            }           

            MessageBox.Show(elServices.ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...