web-dev-qa-db-fra.com

Obtenir (texte) dans XPath

J'ai la structure DOM/HTML suivante, je veux obtenir (juste pratiquer ...) les données marquées. enter image description here

Celui qui se trouve sous l'élément h2. cet élément div [@ class = "coordsAgence"] a quelques enfants div ci-dessous et d'autres h2.

div[@class="coordsAgence"]

Obtiendra cette valeur, mais avec du texte supplémentaire inutile. UPDATE : La valeur (de cet exemple) que je veux fondamentalement est la suivante: texte "GALLIER Dennis".

15
snoofkin

Il semble que vous vouliez le premier nœud de texte dans ce div:

div[@class="coordsAgence"]/text()[1]

devrait le faire.

Notez que cela suppose qu'il n'y a en fait aucun espace entre ces commentaires à l'intérieur de <div class="coordsAgence">; sinon, cet espace constituera des nœuds de texte supplémentaires dont vous devrez tenir compte.

21
Liza Daly

Récupère le premier nœud de texte après le premier h2 dans le div avec la classe "coordsAgence":

div[@class='coordsAgence']/h2[1]/following-sibling::text()[1]

Notez que cette première expression renvoie le premier nœud de texte après le premier h2 même lorsqu'un autre nœud apparaît entre les deux. Si vous souhaitez renvoyer le texte uniquement lorsque c'est le nœud qui immédiatement suit le premier h2, puis essayez quelque chose comme ceci:

div[@class='coordsAgence']/h2[1][following-sibling::node()[1][self::text()]]/following-sibling::text()[1]
1
Wayne Burkett