Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure,Enlive:当使用多步选择器时,如何使用否定?_Clojure_Selector_Negation_Enlive - Fatal编程技术网

Clojure,Enlive:当使用多步选择器时,如何使用否定?

Clojure,Enlive:当使用多步选择器时,如何使用否定?,clojure,selector,negation,enlive,Clojure,Selector,Negation,Enlive,我用Enlive表示Clojure。我试图在li标记中,在一个特定的div标记中获得类为“title”的span标记 <div class="main"> <li><span class="title">wanted</span></li> <li><span class="title">wanted</span></li> <li class="dummy"

我用Enlive表示Clojure。我试图在li标记中,在一个特定的div标记中获得类为“title”的span标记

<div class="main">
    <li><span class="title">wanted</span></li>
    <li><span class="title">wanted</span></li>
    <li class="dummy"><span class="title">NOT wanted</span></li>
</div>
问题是如何只通过一个选择调用就实现这一点。我无法通过多个步骤使用'but'否定,最后使用了嵌套的2个select调用


有人能把这些放在一个select表达式中吗?

我猜您提出的选择器正是正确的

它不匹配的原因是您的HTML格式不正确——请记住,默认的TagSoup解析器会尝试清理您的输入。在片段中,您有列表上下文之外的列表项,因此TagSoup提前关闭包装

必须将列表项包装在列表中,例如


HTML示例是错误的,ol标记实际上存在。你的选择器工作!我尝试了许多交叉点[]括号的变体,但不是你在这里回答的那个。现在我知道了使用否定时如何使用括号。非常感谢!:)
(html/select (html/select src [:div.main]) [[:li (html/but 
:li.dummy)] :span.title])
<div class="main">
    <ol>
        <li><span class="title">wanted</span></li>
        <li><span class="title">wanted</span></li>
        <li class="dummy"><span class="title">NOT wanted</span></li>
    </ol>
</div>
(html/select src [:div.main [:li (html/but :.dummy)] :span.title])