Построение дерева XML из массива «строки / что / являются / пути» в C # - PullRequest
1 голос
/ 02 февраля 2011

Создание дерева XML из массива "strings / that / are / paths" (в Ruby)

Обращаясь к вопросу, приведенному в приведенной выше ссылке, я ищуаналогичная реализация в C #.

Может кто-нибудь помочь мне получить код для этого.

1 Ответ

0 голосов
/ 02 февраля 2011

Вот как бы я это сделал. Я, безусловно, буду благодарен за любые отзывы других.

var paths = new[]
                        {
                            "nodeA1",
                            "nodeA1/nodeB1/nodeC1",
                            "nodeA1/nodeB1/nodeC1/nodeD1/nodeE1",
                            "nodeA1/nodeB1/nodeC2",
                            "nodeA1/nodeB2/nodeC2"
                        };

var xml = new XElement("xml");

foreach (var path in paths)
{
    var parts = path.Split('/');
    var current = xml;
    foreach (var part in parts)
    {
        if (current.Element(part) == null)
        {
            current.Add(new XElement(part));
        }
        current = current.Element(part);
    }
}

var result = xml.ToString();

Это печатает следующее:

<xml>
  <nodeA1>
    <nodeB1>
      <nodeC1>
        <nodeD1>
          <nodeE1 />
        </nodeD1>
      </nodeC1>
      <nodeC2 />
    </nodeB1>
    <nodeB2>
      <nodeC2 />
    </nodeB2>
  </nodeA1>
</xml>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...