使用ruby Nokogiri,我有一个Nokogiri::XML::Node
对象(ConstituencyXMLNode继承自Nokogiri::XML::Node
),它是一个树对象,如下所示:
#(ConstituencyXMLNode:0xc3c8 {
name = "PP",
children = [
#(ConstituencyXMLNode:0xc3dc { name = "IN", children = [ #(Text "out")] }),
#(ConstituencyXMLNode:0xc3f0 {
name = "PP",
children = [
#(ConstituencyXMLNode:0xc404 { name = "IN", children = [ #(Text "of")] }),
#(ConstituencyXMLNode:0xc418 {
name = "NP",
children = [
#(ConstituencyXMLNode:0xc42c { name = "JJ", children = [ #(Text "non-living")] }),
#(ConstituencyXMLNode:0xc440 { name = "NNS", children = [ #(Text "resources")] })]
})]
})]
})
我们称之为pp_leaf
我想比较一下这个节点的部分是否包含在另一个部分Nokogiri::XML::Node中:
#(ConstituencyXMLNode:0xc3f0 {
name = "PP",
children = [
#(ConstituencyXMLNode:0xc404 { name = "IN", children = [ #(Text "of")] }),
#(ConstituencyXMLNode:0xc418 {
name = "NP",
children = [
#(ConstituencyXMLNode:0xc42c { name = "JJ", children = [ #(Text "non-living")] }),
#(ConstituencyXMLNode:0xc440 { name = "NNS", children = [ #(Text "resources")] })]
})]
})
我们将这个节点称为current_leaf
。
看起来Nokogiri::XML::NodeSet
有我正在寻找的比较工具,但我不确定如何将Nokogiri::XML::Node
转换为Nokogiri::XML::NodeSet
。如果一个集合包含另一个集合,Nokogiri::XML::Node
上的运算符似乎都没有我需要匹配的比较运算符。
有什么想法吗
1条答案
按热度按时间d8tt03nd1#
我找到了一种方法:
感谢this answer。它将节点树分解为一个数组,让您检查节点是否是成员。