返回分层xml的节点级别

时间:2010-06-16 14:08:08

标签: c# hierarchical-data

在树状视图中,您可以检索项目的级别。我试图用给定的输入作为对象来完成同样的事情。

我将用于此示例的XML数据类似于以下

<?xml version="1.0" encoding="utf-8" ?>
<Testing>
  <Numbers>
    <Number val="1">
      <Number val="1.1">
        <Number val="1.1.1">
          <Number val="1.1.2" />
          <Number val="1.1.3" />
          <Number val="1.1.4" />
        </Number>   
      </Number>
      <Number val="1.2" />
      <Number val="1.3" />
      <Number val="1.4" />
    </Number>
    <Number val="2" />
    <Number val="3" />
    <Number val="4" />
  </Numbers>
  <Numbers>
    <Number val="5" />
    <Number val="6" />
    <Number val="7" />
    <Number val="8" />
  </Numbers>
</Testing>

这是踢我的屁股!

1 个答案:

答案 0 :(得分:6)

你可以递归元素的父母,如下所示:

public static int GetLevel(this XObject node) {
    if (node.Parent == null) return 0;
    return 1 + node.Parent.GetLevel();
}

或者,没有递归:

public static int GetLevel(this XObject node) {
    int level = 0;
    while (null != (node = node.Parent))
        level++;

    return level;
}