2011-11-14 21 views
5

Tak mam zmienną zawierającą zbiorze węzłów z wielu węzłów SizeXSLT: Sprawdź, czy wartość istnieje w liście

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

I wtedy trzeba zrobić sumę na innym zbiorze węzłów, gdzie rozmiar/@ Identyfikator ten występuje w rozmiarach $ zmienna

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

Ale ja walczą o jak piszę ten ... XPath w XSLT 1,0

+0

Wiem, że odpowiedź jest prosta, ale mój mózg wciąż jest w trybie weekendu. – CaffGeek

Odpowiedz

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

jeśli rozumiem Twoja specyfikacja jest poprawna.

Działa to z powodu "kwantyfikacji egzystencjalnej": A = B oznacza "niektóre elementy zestawu węzłów A są równe niektórym elementom zbioru węzłów B". (W twoim przypadku A ma co najwyżej tylko jednego członka.)

+0

**** twarz dłoni ****, wydawało się zbyt łatwe, aby spróbować, lol dzięki – CaffGeek

+1

+1 za dobrą odpowiedź. –

Powiązane problemy