首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向div标签的现有类添加来自XSLT的新类?

向div标签的现有类添加来自XSLT的新类?
EN

Stack Overflow用户
提问于 2018-05-31 16:45:19
回答 1查看 206关注 0票数 -2
代码语言:javascript
复制
<div class="filter">
 <xsl:attribute name="class">

                <xsl:if test="@class=filter">
                  filter
                </xsl:if>
                <xsl:value-of select="Category"/>
 </xsl:attribute>
</div>

我想要添加一个新类,它是我从xsl值中获得的,包含filter .but,就像我做的那样,只需删除我的以前的类添加新类.But我想同时添加两个类。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 17:04:45

语句<xsl:if test="@class=filter">可能没有做您期望它做的事情。

首先,它将属性class与XML中一个名为filter的元素(可能不存在)进行比较。您可能想要将类与字符串值进行比较,您可以这样做:

代码语言:javascript
复制
<xsl:if test="@class='filter'">

然而,这导致了第二个问题。这个测试是在您当前匹配的任何元素上检查输入XML (您还没有显示)中的class属性。它不会在输出中检查您刚刚在<div>上创建的类属性。

使用xsl:attribute将替换正在处理的元素上的任何现有属性,因此不需要将class="filter"放在<div>上。你可以这样做...

代码语言:javascript
复制
<div>
  <xsl:attribute name="class">
     <xsl:text>filter </xsl:text>
     <xsl:value-of select="Category"/>
  </xsl:attribute>
</div>

更好的方法是使用Attribute Value Templates,它允许您直接将class属性添加到<div>标记

代码语言:javascript
复制
<div class="filter {Category}" />

因此,"filter“将作为字符串输出,但大括号表示要计算的表达式,因此Category元素的值将在此处输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50620185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档