Dato questo XMLFiltro lista XPath in base ai valori nella lista associata
<DiagList>
<Diag id="1" icd="400"/>
<Diag id="2" icd="401"/>
<Diag id="3" icd="402"/>
<Diag id="4" icd="400"/>
</DiagList>
<ICDList>
<ICD id="400" description="First one"/>
<ICD id="401" description="Second one"/>
<icd id="402" description="Third one"/>
<ICDList>
Voglio scrivere una query XPath che selezionerà Diags in cui la descrizione del ICD associato contiene del testo.
Quindi ad esempio se ho specificato il testo di "st", allora dovrei ottenere Diags "1" e "4". Se specifichi il testo di "ir" dovrei ottenere diags "1", "3" e "4".
Ho provato
/DiagList/Diag[contains(lcase(/ICDList/ICD[@id=/DiagList/Diag/@icd]/@description), 'st')]
e variazioni.
Non sono riuscito a farlo funzionare. Sembra che non gli piaccia il riferimento annidato a @icd.
È qualcosa che è possibile?
grazie ben
Hm. Cosa succede se hai scritto "uno"? Allora vorresti 1,2,3,4? – FailedDev
Ottima domanda, +1. XPath ci dà la possibilità di scrivere un'espressione elegante, singola che seleziona i nodi desiderati. Non sono necessarie divertenti funzioni di estensione o solo funzioni XSLT. –