选择特定行并在 XSLT 中应用条件



我有一个 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>

相关内容

  • 没有找到相关文章