請注意,我編制了術語「水平深度」來測量樹中節點的子維度。如何獲得節點的水平深度?
所以想象這將對XPath的類似/ HTML /臺/ TBODY/TR/TD,以及5
我試圖看看是否有一種方法來識別和選擇元素「水平深度」基於這個水平深度。
我如何找到最大深度?
請注意,我編制了術語「水平深度」來測量樹中節點的子維度。如何獲得節點的水平深度?
所以想象這將對XPath的類似/ HTML /臺/ TBODY/TR/TD,以及5
我試圖看看是否有一種方法來識別和選擇元素「水平深度」基於這個水平深度。
我如何找到最大深度?
如果你需要所有深度節點> = 5:
/*/*/*/*//*
如果你需要所有深度== 5節點:
/*/*/*/*/*
其實,有一個XPath函數count
,您可以用ancestor
軸結合:
//*[count(ancestor::*) >= 4]
如何獲得最大深度? – bohohasdhfasdf 2010-01-31 22:19:39
垂直還是水平? 只是開玩笑,我不知道使用XPath(簡單的谷歌搜索沒有運氣)。但是,您可以簡單地將所有節點都帶到XPath中,然後在Ruby中找到祖先數量最多的節點。 – 2010-02-01 08:58:59
我認爲,「垂直德pth「和」水平深度「是不明確的。是否有任何理由不使用已經存在於XPath中的軸術語,並參考「祖先的數量」和「前面的兄弟的數量」?它稍微更冗長,但不多,和a)它是明確的,b)術語映射到count(ancestor::*)
和count(preceding-sibling::*)
。
我怎樣才能得到樹的最大深度? – bohohasdhfasdf 2010-01-31 22:20:18
「水平深度」與樹中深度的直觀定義有何不同? – ldog 2010-01-31 10:14:18
沒有區別。我不想混淆垂直和水平深度。 – bohohasdhfasdf 2010-01-31 10:51:54
我想你應該給出一些例子XML和預期的結果集。 – 2010-01-31 11:14:50