XSLT: проверьте, существует ли значение в списке - PullRequest
5 голосов
/ 15 ноября 2011

Итак, у меня есть переменная, содержащая набор узлов с несколькими узлами Size

<xsl:variable name="sizes" select="$filter/Size" />

Затем мне нужно сделать сумму для другого набора узлов, где Size / @ ID существует в этой переменной $ sizes

<xsl:value-of select="sum(Sizes/Size[ **where @ID in $sizes/@ID** ]/@Value)"/>

Но я борюсь за то, как я пишу этот XPath ... в xslt 1.0

1 Ответ

7 голосов
/ 15 ноября 2011
<xsl:value-of select="sum(Sizes/Size[@ID = $sizes/@ID]/@Value)"/>

, если я правильно понимаю вашу спецификацию.

Это работает из-за «экзистенциального количественного определения»: A = B означает «некоторый член набора узлов A равен некоторому члену набора узлов B».(В вашем случае у A все равно не более одного члена).

...