private TreeNode XElementToTreeNode(XElement element)
{
if (null == element.FirstAttribute)
return null;
TreeNode node = new TreeNode(element.FirstAttribute.Value);
if (!element.HasElements)
// return if it is leaf node
return node;
// convert its child elements
foreach (XElement ele in element.Elements())
{
node.Nodes.Add(XElementToTreeNode(ele));
}
// return whole node
return node;
}