从C#中的“strings / that / are / paths”数组构建XML树

时间:2011-02-01 22:55:08

标签: c# xml string path tree

Building an XML tree from an Array of "strings/that/are/paths" (in Ruby)

参考上面链接中给出的问题,我在C#中寻找类似的实现。

任何人都可以帮我获取代码吗。

1 个答案:

答案 0 :(得分:0)

这是我将如何做到的。我当然感谢别人的任何反馈。

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>