我有一个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中实现这个逻辑的正确方法
答案 0 :(得分:1)
测试
$variants/syddata/data/@variant1 = 'Grå' and
$variants/syddata/data/@variant2 = '140x200 cm'
只需使用data
检查variant1="Grå"
元素是否包含data
元素,还是variant2="140x200 cm"
元素(不一定是同一元素)。如果要检查相同的 data
元素上的两个条件,然后提取其项目编号,则需要更像
<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>