css - for-each 中的 xsl 使用不同的 css 类

标签 css xslt

如何在 xslt 中每次使用不同的 css 类在 for-each 循环中显示文本?我可以根据某些变量或其他东西以某种方式生成 css 类的名称吗?是否可以? 例如,在 foreach 循环内的以下代码中,我可以每次显示具有不同 css 类的 li ...例如在第一次迭代中 li class="1"...第二次迭代 li class="2".. .并且在 css 中明显存在 li.1{..}, li.2{...}

    <xsl:output method="text" indent="no"/>
<xsl:variable name="newline">
    <xsl:text>
    </xsl:text>
</xsl:variable>

<xsl:template match="/">
    <xsl:text>Collections of books</xsl:text>
    <xsl:value-of select="$newline"/>
    <xsl:variable name="index" select="0"/>
    <xsl:for-each select="collection/book"> 
        <xsl:sort select="category"/>
        <xsl:variable name="lastCat" select="category"/>
        <xsl:if test="not(preceding-sibling::book[category=$lastCat])">
            <xsl:value-of select="$newline"/>       
            <xsl:value-of select="category"/>
            <xsl:value-of select="$newline"/>
            <xsl:value-of select="$newline"/>
        </xsl:if>
        <ul>
            <li>
                <xsl:value-of select="title"/>
                <xsl:text>    </xsl:text>
                <xsl:value-of select="author"/>
                <xsl:text>    </xsl:text>
                <xsl:value-of select="year"/>
                <xsl:text>    </xsl:text>
                <xsl:value-of select="isbn"/>
            </li>
        </ul>
        <xsl:value-of select="$newline"/>

    </xsl:for-each>
</xsl:template>

最佳答案

您的 XSLT 对于输出的是文本还是 html 有点困惑。但是,在回答您的直接问题时,您可以通过以下两种方式之一轻松地将属性添加到您正在输出的现有 li 元素。

首先,您可以使用 xsl:attribute 语句,该语句应紧跟在 li 标记之后。

<li>
   <xsl:attribute name="class">
      <xsl:value-of select="position()" />
   </xsl:attribute>
   ...

不过,更好的方法是使用“属性值模板”来指定属性。 (大括号表示在这种情况下要评估的 AVT,而不是要按字面意义输出的一段文本)

<li class="{position()}">
    ...

在这两种情况下,输出都将类似于以下内容

<li class="1">...
<li class="2">...

在此示例中,我只是使用 position() 来演示如何设置属性,但如果需要,您可以轻松使用变量。

<li class="{$classname}">

关于css - for-each 中的 xsl 使用不同的 css 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071819/

相关文章:

css - 为什么图像随浏览器移动但不居中?

javascript - 如何在 javascript 函数中嵌入 xslt?

xml - 在 XPath 中提取以下同级节点的子节点属性

xslt - XSLT 2.0 中的序列构造函数是什么?

html - 在 bootstrap carousel 中,如何删除图像和 .carousel div 之间的空间?

javascript - 使 Bootstrap 列从屏幕右侧进入

html - Css 框阴影提升 Angular

css - 如何使用 Nokogiri 获取列表中的第二张图片?

xml - XSLT- 规范化不间断空白字符

xml - XSLT:新增属性的定位