sách gpt4 ăn đã đi

Làm thế nào để bạn đếm "cấp độ" của con cháu của nút Nokogiri?

In lại 作者:数据小太阳 更新时间:2023-10-29 07:37:01 29 4
mua khóa gpt4 giày nike

您可以调用Nokogiri::XML::Node#ancestors.size 来查看节点的嵌套深度。但是有没有办法确定嵌套最深的子节点的嵌套深度呢?

或者,您如何找到从一个节点下降的所有叶节点?

câu trả lời hay nhất

下面的代码猴子补丁 Nokogiri::XML::Node 是为了好玩,但当然你可以将它们提取为单独的方法,如果你喜欢的话。 (只有 chiều cao 方法是您问题的一部分,但我认为 deepest_leaves 方法可能很有趣。)

require 'nokogiri'
class Nokogiri::XML::Node
def depth
ancestors.size
# The following is ~10x slower: xpath('count(ancestor::node())').to_i
kết thúc
def leaves
xpath('.//*[not(*)]').to_a
kết thúc
def height
tallest = leaves.map{ |leaf| leaf.depth }.max
tallest ? tallest - depth : 0
kết thúc
def deepest_leaves
by_height = leaves.group_by{ |leaf| leaf.depth }
by_height[ by_height.keys.max ]
kết thúc
kết thúc

doc = Nokogiri::XML "





"

a1 = doc.at_xpath('//a1')
p a1.height #=> 4
p a1.deepest_leaves.map(&:name) #=> ["e1", "e2", "e3"]
p a1.leaves.map(&:name) #=> ["b1", "d1", "e1", "e2", "e3"]

biên tập:chỉ một回答问题时要简洁,不要将其包装在可重复使用的部分中:

p a1.xpath('.//*[not(*)]').map{ |n| n.ancestors.size }.max - a1.ancestors.size

关于ruby - 你如何计算Nokogiri节点后代的 "levels"个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5694759/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress