这是一段 XML:
<xml>
<section>
<element>good</element>
<section class="ignored">
<element>bad</element>
</section>
</section>
</xml>
在 a中选择 allelements
或 all很容易:elements
section.ignored
@doc.css('element').text
=> "goodbad"
@doc.css('section.ignored element').text
=> "bad"
但是我如何选择所有elements
不在里面的东西?这不起作用:section.ignored
@doc.css('section:not(.ignored) element').text
=> "goodbad"
...因为这实际上意味着“包含在任何未被忽略的部分中的所有元素”,包括包装其他所有内容的顶级部分!
额外的转折:与上面的简化示例不同,我必须处理的真正 XML 嵌套到任意深度,包括被忽略部分中的部分。
是的,我可以从 Ruby 中的完整数组中减去坏数组并收工,但如果可能的话,我更喜欢纯 CSS 解决方案(或者,如果必须的话,XPath)。