XPath选择<div>的所有文本内容,但特定标记<h5> </h5> </div>除外

时间:2013-02-27 21:28:17

标签: html xpath siblings

我搜索并尝试了几个解决此问题的方案,但没有一个有效: 我有这个HTML

<div class="detalhes_colunadados">
   <div class="detalhescolunadados_blocos">
     <h5>Descrição completa</h5>
    Sala de estar/jantar,2 vagas de garagem cobertas.<br>
    </div>
    <div class="detalhescolunadados_blocos">
      <h5>Valores</h5>
            Venda: R$ 600.000,00<br>
          Condomínio: R$ 660,00<br>
    </div>
</div>

并且想要通过XPath仅提取第一个div class =“detalhescolunadados_blocos”中不是h5标签的文本内容。

我试过了: // DIV [@类= 'detalhescolunadados_blocos'] / [1] / * [没有(个体:: H5)]

3 个答案:

答案 0 :(得分:11)

尝试以下XPath表达式:

//div[@class='detalhescolunadados_blocos'][1]//text()[not(ancestor::h5)]

这将返回:

$ xmllint --html --shell so.html
/ > xpath //div[@class='detalhescolunadados_blocos'][1]//text()[not(ancestor::h5)]    
Object is a Node Set :
Set contains 2 nodes:
1  TEXT
    content=      
2  TEXT
    content=     Sala de estar/jantar,2 vagas de gar...

答案 1 :(得分:0)

在我看来,这有效:

//div[@class="detalhescolunadados_blocos"]/text()

答案 2 :(得分:0)

尝试这样做:

//div[@class="detalhes_colunadados"]/div/text()