我有很多 html 并想通过 xpath 处理它。文本有两种可能的方式:
<div>
The Text
</div>
<!-- OR -->
<div>
<span>The Text</span>
</div>
<!-- BUT NOT -->
<div> other text
<span>The Text</span>
</div> other text
有没有办法用单个 xpath 表达式获取“文本”?
编辑:
混凝土结构:
<div id="content">
<h1>...</h1>
<div>
...
</div>
<div>
<span>The Text</span>
</div>
我通过获取内容节点//div[@id='content'][1]
并将其重用于其他目的。在这个上下文节点上,我尝试执行./div[2]/span/text() | ./div[not(span)][2]/text()
. 如果没有跨度,它可以工作,但如果有生成,则返回空白/null。我正在使用 Java xpath 实现。div 始终是内容节点的第二个。