分层xml的返回节点级别 [英] Return node level of hierarchical xml

查看:67
本文介绍了分层xml的返回节点级别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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.

我将在此示例中使用的XML数据如下所示

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>

这是踢我的屁股!

推荐答案

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

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

或者,无需递归:

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

    return level;
}

这篇关于分层xml的返回节点级别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆