将父XML计算到最后一层

时间:2013-10-30 10:07:36

标签: c# xml count parent

我试图计算所有父母,直到倒数第二层(人)。我为这篇文章做了一个例子,但最终我有一个生成的XML文件。所以最好的答案是动态解决方案。

<?xml version="1.0" encoding="UTF-8"?>
<data name="data_resource" friday="no">
    <persons>
        <person>
            <name>Jack</name>
            <age>22</age>
            <pob>New York</pob>
        </person>
        <person>
            <name>Guido</name>
            <age>21</age>
            <pob>Hollywood</pob>
        </person>
        <person>
            <name>Michael</name>
            <age>20</age>
            <pob>Boston</pob>
        </person>
    </persons>
    <computers>
        <computer>
            <name>My-Computer-1</name>
        </computer>
    </computers>
</data>

澄清我想要的东西:数:数据,人,计算机和人(x3)。这个特定例子的结果是:7

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

创建一个递归函数,该函数将XmlElement或XElement作为参数:

public int CountParents(XmlNode el)
{
    if (el.ParentNode == null)
        return -1;  // Adjust this value in order to have the correct Level.
    return CountParents(el.ParentNode) + 1;
}

调整顶层的返回值,以便结果符合您的需要。