[英]xPath preceding doesn't work when node not exist
例如xml:
<ul id="list">
<li>
<h3 class="title">
<a>text 1</a>
</h3>
</li>
<li>
<h3 class="title">
<a>text 2</a>
</h3>
</li>
<li>
<h3 class="title">
<a>text 3</a>
</h3>
</li>
<li>
<div class="sifExp">
<span>...</span>
</div>
</li>
<li>
<h3 class="title">
<a>text 4</a>
</h3>
</li>
</ul>
前面的xPath:
//ul[@id='list']//div[@class='sifExp']/preceding::li//h3[@class='title']/a
工作正常。 结果是:
text 1
text 2
text 3
但是当xml没有<div class="sifExp">
节点时,上面的表达式不起作用。
<div class="sifExp">
不存在时text 1, text 2, text 3, text 4
有没有办法获取所有内容( text 1, text 2, text 3, text 4
)? 让我们找到在div[@class='sifExp']
之前没有的li
div[@class='sifExp']
。 如果它不存在,所有的li
都是合适的
//ul[@id='list']
/li[not(preceding-sibling::li[div[@class='sifExp']])]
/h3[@class='title']/a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.