拿这个(id
属性只添加,所以我可以在下面引用它们)
<div id="one">
<figure>foo</figure>
<figure>bar</figure>
</div>
<div id="two">
<figure>foo</figure>
<div>bar</div>
</div>
<div id="three">
<div>bar</div>
</div>
如何选择其子元素所有 div
元素的所有figure
元素,即仅在给定示例中选择div 1?
我需要//div[count(not figure)>0]
。
答案 0 :(得分:1)
这是一种可能的方式:
SELECT SUM(amount) as tdb
FROM v_ledger_details
WHERE `debit_credit` = 'DB'
AND accountId = '944'
AND
(
(transaction_type_id IN (4,5) and billDate < '2016-06-01') OR
(transaction_type_id NOT IN (4,5) AND postingDate < '2016-06-01')
)
//div[not(*[name() != 'figure']) and not(text()[normalize-space()])]
的左侧确保and
没有名为“figure”的子元素,右侧确保它没有非空子项文本节点。
或使用div
的相同方法:
count()
答案 1 :(得分:0)
我是这样做的:
//div[figure][count(figure) = count(*)]
这会找到必须包含至少一个figure
的div,然后检查figure
元素的数量是否与所有其他元素的计数匹配;如果这是真的那么它就不能包含任何其他内容。