我有一个 XSL 变量variants
它保存这样的数据
<syddata lastUpdated="30.10.2013 05:50 ">
<data itemnumber="sd20-grøn-200cm" variant1="Grøn" variant2="140x200 cm" var1code="gron" var2code="200cm"></data>
<data itemnumber="sd20-grøn-220cm" variant1="Grøn" variant2="140x220 cm" var1code="gron" var2code="220cm" ></data>
<data itemnumber="sd20-grå-200cm" variant1="Grå" variant2="140x200 cm" var1code="graa" var2code="200cm" ></data>
<data itemnumber="sd20-grå-220cm" variant1="Grå" variant2="140x220 cm" var1code="graa" var2code="220cm"></data>
</syddata>
现在我想从中选择一行特定的行,variant1="Grå"
和variant2="140x200 cm"
我尝试过这样的行
<xsl:if test="$variants/syddata/data/@variant1 = 'Grå' and $variants/syddata/data/@variant2 = '140x200 cm'">
<xsl:value-of select="@itemnumber"/>
</xsl:if>
但它没有给我任何东西。谁能告诉我在 XSLT 中实现此逻辑的正确方法是什么
测试
$variants/syddata/data/@variant1 = 'Grå' and
$variants/syddata/data/@variant2 = '140x200 cm'
只需检查是否有具有variant1="Grå"
的data
元素以及具有variant2="140x200 cm"
的data
元素(不一定是相同的元素)。 如果你想检查同一个data
元素上的两个条件,然后提取它的itemnumber,你需要更多类似的东西
<xsl:variable name="item"
select="$variants/syddata/data[@variant1='Grå' and @variant2='140x200 cm']" />
<xsl:if test="$item"><xsl:value-of select="$item/@itemnumber" /></xsl:if>