例如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">
节点时,上面的表达式不起作用。
text 1, text 2, text 3, text 4
不存在时,是否可以获取所有内容(<div class="sifExp">
)?答案 0 :(得分:3)
让我们找到li
之前没有的div[@class='sifExp']
。如果它不存在,则所有li
都适合
//ul[@id='list']
/li[not(preceding-sibling::li[div[@class='sifExp']])]
/h3[@class='title']/a