1

我有一个 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 中实现这个逻辑的正确方法是什么

4

1 回答 1

1

考试

$variants/syddata/data/@variant1 = 'Grå'  and
 $variants/syddata/data/@variant2 = '140x200 cm'

只需检查是否有一个data元素 withvariant1="Grå"和一个data元素(不一定是同一个) with variant2="140x200 cm"。如果你想检查同一个 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>
于 2013-10-30T11:33:53.323 回答