Requete XPATH

Fermé
svrbnd Messages postés 23 Date d'inscription dimanche 26 novembre 2000 Statut Membre Dernière intervention 5 mars 2009 - 5 mars 2009 à 17:34
Bonjour,
Je suis debutant en XPATH mais depuis deux jours je bute sur une requete:
Voici mon XML:

<FILES>
<SENDER>/MailboxCD</SENDER>
<FNAME>OLD200902.ERR</FNAME>
<OPERATIONS>
<OPERATION>
<Mailbox>/MailboxCD</Mailbox>
<OP>NEW*</OP>
<ACTION>Create</ACTION>
</OPERATION>
<OPERATION>
<Mailbox>/MailboxFTP</Mailbox>
<OP>UPD*</OP>
<ACTION>Update</ACTION>
</OPERATION>
<OPERATION>
<Mailbox>/MailboxFTP</Mailbox>
<OP>DEL*</OP>
<ACTION>Delete</ACTION>
</OPERATION>
<OPERATION>
<Mailbox>/MailboxCD</Mailbox>
<OP>*.ERR</OP>
<ACTION>Error</ACTION>
</OPERATION>
</OPERATIONS>
</FILES>

J'essaie de récupérer les nodes OPERATION correspondant au SENDER. Ça facile:
/FILES/OPERATIONS/OPERATION[Mailbox= //FILES/SENDER/text()]

Où ça se complique c'est que je dois comparer le FILENAME avec OP. Dans le cas présent par exemple FILENAME finit en ".ERR" je voudrais que soit sélectionné le dernier node OPERATION.
Inversement si mon FILENAME était ie. NEW200902 je voudrais que soit sélectionné le premier node OPERATION.
J'ai cette requete qui fonctionne pas trop mal mais qui ne me permet pas de tester l'OP "*.ERR".
//FILES/OPERATIONS/OPERATION[Mailbox=//FILES/SENDER/text() and OP=substring(//FILES/FNAME,1,3)]
Et de plus il nést pas sûr que OP soit toujours de 3 lettres+*.
SI quelqu'un a un moment pour m'aider merci d'avance.
Bernard