は、私は、関連するICDの説明は いくつかのテキストが含まれているところDiagsをを選択しますXPathクエリを書きたい、このXML関連するリスト内の値に基づいてフィルタのXPathリスト
<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>
を考えます。
たとえば、 "st"のテキストを指定した場合、Diags "1"と "4"を取得する必要があります。私が "ir"のテキストを指定する場合、私はdiags "1"、 "3"、 "4"を得なければなりません。
私は
/DiagList/Diag[contains(lcase(/ICDList/ICD[@id=/DiagList/Diag/@icd]/@description), 'st')]
とバリエーションを試してみました。
私はそれを動作させることができませんでした。 @icdへのネスト参照が気に入らないようです。
これは可能ですか?あなたが不足している何
おかげ ベン
フム。あなたが「1つ」を書いたら?次に1,2,3,4を望むでしょうか? – FailedDev
優秀な質問、+1。 XPathでは、希望するノードを選択するエレガントで単一の表現を書くことができます。面白い拡張関数やXSLTのみの関数は必要ありません。 –