返回分层 xml 的节点级别

发布于 2024-09-05 17:55:44 字数 856 浏览 4 评论 0原文

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

我将在本示例中使用的 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>

这真是太棒了!

In a treeview you can retrieve the level of an item. I am trying to accomplish the same thing with the given input being an object.

The XML data I will use for this example would be something like the following

<?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>

This one is kicking my butt!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

欲拥i 2024-09-12 17:55:44

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

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

You can recurse the element's parents, like this:

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

Or, without recursion:

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

    return level;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文