0

LINQtoXML で以下のような階層ツリー構造を作成しようとしています。

 <Item>
   <Item>
      <Item>
      </Item>
   </Item>
 </Item>

子レベルの数は動的です。任意の数にすることができます。

public static XElement BuildTree(int numberOfLevel)
{
    XElement parent=new XElement("Item");
    AddChild(parent,numberOfLevel);
    return parent;
}
public static XElement AddChild(XElement elm, int numberofLevel)
{
    while (numberofLevel > 1)
    {
        numberofLevel--;
        elm.Element("Item").Add(AddChild(elm, numberofLevel));
    }
    return elm;
}

しかし、実行すると、行にnull参照エラーが発生しますelm.Element("Item")

誰でも私を助けることができますか?

4

1 に答える 1

0
public static XElement BuildTree(int numberOfLevel)
{
    XElement parent = new XElement("Item");
    AddChild(parent,numberOfLevel);
    return parent;
}

public static void AddChild(XElement elm, int numberofLevel)
{
    if(numberofLevel > 1)
    {
        XElement newElm = new XElement("Item");
        elm.Add(newElm);
        AddChild(newElm, numberOfLevel - 1);
    }
}

ただし、再帰を使用しないとできません。

public static XElement BuildTree(int numberOfLevel)
{
    XElement parent = new XElement("Item");
    XElement current = parent;
    while(numberOfLevel > 1)
    {
         XElement newElement = new XElement("Item");
         current.Add(newElement);
         current = newElement;
         numberOfLevel--;
    }
    return parent;
}
于 2013-01-13T16:08:39.250 に答える