Existe-t-il une méthode XPath pour récupérer directement un attribut spécifique des nœuds frères précédents d'un nœud XML à l'aide d'une requête XPath?Récupérer des attributs de nœuds frères précédents précédents
Dans l'exemple suivant, je voudrais récupérer les valeurs de l'attribut alt
de chaque img
noeuds qui précèdent l'élément div
marqué par la id=marker
.
<content>
<img alt="1" src="file.gif" />
<img alt="2" src="file.gif" />
<img alt="3" src="file.gif" />
<img alt="4" src="file.gif" />
<div id='marker'></div>
</content>
Pour cet exemple, je veux récupérer les valeurs 1 2 3 4
.
J'utilise la requête XPath suivante
//div[@id='marker']/preceding-sibling::img
afin de récupérer la liste des nœuds que je veux
<img alt="1" src="file.gif"/>
<img alt="2" src="file.gif"/>
<img alt="3" src="file.gif"/>
<img alt="4" src="file.gif"/>
Comme il est une liste de noeud Je peux alors itérer sur les noeuds pour récupérer la valeur d'attribut I Je cherche, mais y a-t-il une façon XPath de le faire? Je me serais attendu à être capable d'écrire quelque chose comme:
//div[@id='marker']/preceding-sibling::[email protected]
or //div[@id='marker']/[email protected]::img
mais je ne sais même pas s'il est possible une fois que vous avez utilisé un XPath Axe
comme preceding-sibling.
@skaffman: Puis-je vous demander pourquoi vous avez retiré mon 'sibling' tag s'il vous plait? –