Quelqu'un peut-il m'aider avec ce petit problème que j'ai.XPath Sélectionner le noeud à partir de la valeur actuelle du noeud lorsque les deux noms d'attribut sont les mêmes
Le XML
<MPN>
<MTR MSN="AB123456"/>
<MTR MSN="AB654321"/>
<MTR MSN="AB654322"/>
<MTR MSN="AB654323”/>
<MTR MSN="AB654324"/>
<JOB JobId="136">
<JMR MSN="AB123456">
<JRA DateActionRequiredBy="20090701120012" />
</JMR>
<JMR MSN="AB654321">
<JRA DateActionRequiredBy="20090701100010" />
</JMR>
</JOB>
</MPN>
Je voudrais récupérer le DateActionRequiredBy de l'élément JRA, lorsque l'analyseur est assis à l'élément MTR, un seul doit être retourné.
J'ai essayé.
../JOB/JMR[@MSN = @MSN]/JRA/@DateActionRequiredBy
qui retourne {Dimension: [2]} NodeSet, cela correspond tout à cause de la @MSN lui-même d'attribut correspondant effectivement pas le parent.
../JOB/JMR[@MSN = ./@MSN]/JRA/@DateActionRequiredBy
qui retourne {Dimension: [2]} NodeSet
J'ai trouvé une solution mais il faudra une variable dans chaque attribut xsl: ce qui ne semble pas juste pour moi.
<xsl:variable name="storeMSN" select="@MSN"/>
../JOB/JMR[@MSN = $storeMSN]/JRA/@DateActionRequiredBy
qui retourne 20090701120012 Attribut
C'est ce que je suis après, mais il doit y avoir un moyen plus facile d'atteindre cet autre qu'une variable pour chaque attribut.
Merci d'avance.
oui current() était la pièce manquante dans le puzzle. Merci ;-) – Nanook