9
votes

XPath Sélectionnez tout le contenu du texte pour un
à l'exception d'une étiquette spécifique

J'ai cherché et essayé plusieurs solutions à ce problème, mais aucun d'entre eux n'a travaillé: J'ai ce 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>


1 commentaires

Je ne suis pas bon chez XPath, mais je sais que pour l'extraction du texte que vous devez utiliser la fonction de texte () ...


3 Réponses :


0
votes

Il me semble que cela fonctionne:

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


0 commentaires

0
votes

Essayez de faire ceci:

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


0 commentaires

12
votes

Essayez l'expression XPath suivante:

$ 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...


3 commentaires

Pourquoi ne pas utiliser xmllint --html --xpath '// foo' file.html ? =)


Merci de me faire remarquer l'option - xpath . C'est en fait sans papiers.


Merci beaucoup, j'oublisais que la partie de texte est l'enfant de H5, je incluse essayé // texte () [non (auto :: h5)].