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

但是在运行时,我在该行中得到一个空引用错误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 回答