J'utilise une application Java basée sur Saxon pour l'analyseur XPath. S'il vous plaît considérer les points suivants:Requête XPath: Comment faire référence au 'noeud courant' (Java/Saxon)
<import>
<record ref="abc">
<id>123</id>
<data>Value<data>
</record>
<record ref="def">
<parent>123</parent>
<data>Value2</data>
</record>
</import>
Mon cas d'utilisation est, je suis en boucle à travers les noeuds d'enregistrement et de besoin de chercher un autre avec ref attribut égal à la valeur sous le nœud parent de l'enfant.
Si le nœud actuel est <record ref="def">
, comment puis-je écrire une requête pour renvoyer le nœud de données dans le premier nœud d'enregistrement en faisant correspondre /query/record/id/text() = current node/parent/text()
?
Si j'exécute cette requête:
/import/record[id/text() = '123']/data
Puis-je obtenir le nœud de données correct, mais je ne peux pas sembler en mesure de remplacer « 123 » pour la valeur sous le nœud parent?
J'ai essayé de remplacer '123' with ./parent/text()
et pendant la compilation de XPath, aucun résultat n'est renvoyé.
Merci,
JB
droite, alors comment puis-je faire référence au noeud courant (, celui que je passe dans la méthode d'évaluation XPath), donc je peux utiliser la valeur sous parent? –
user267749
J'ai compris!/import/record [id =/import/record [position()]/parent]/data – user267749