获取项目的深度

zac*_*ary 5 linq asp.net linq-to-xml

我有这样的xml:

<A><B>test</B><B><B>test2</B></B><B><B><B>test2</B></B></B></A>
Run Code Online (Sandbox Code Playgroud)

如何使用linq to xml获取每个项目的级别

测试水平= 1水平测试2 = 2水平测试3 = 3

我不知道将会有多少节点或将有多少级别.我可以把它写成一个递归函数,但我认为linq to xml可能有更好的东西.

wom*_*omp 6

假设你已经加载了XML作为XDocumentXElement对象,

myXElement.AncestorsAndSelf().Count()

应该给你任何给定元素的深度.

  • 有一个Count()方法,它是一个LINQ扩展方法.如果您不想计算当前元素,请使用Ancestors()而不是AncestorsAndSelf(). (2认同)