首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT :如何在不复制代码的情况下创建条件链接

XSLT :如何在不复制代码的情况下创建条件链接
EN

Stack Overflow用户
提问于 2010-07-21 22:58:14
回答 2查看 846关注 0票数 2

生成的HTML页面包含有时在我的页面中不存在的引用链接。我应该将这个链接显示为一个简单的标签。目前已完成此操作:

代码语言:javascript
复制
<xsl:choose>
 <xsl:when test="$nb_action != 0">
  <a href="#action">Action (offensive, defensive, reconnaissance)</a>
 </xsl:when>
 <xsl:otherwise>
  Action (offensive, defensive, reconnaissance)
 </xsl:otherwise>
</xsl:choose>

我想知道如何简化我的代码,如何停用节点<a></a>

我的第一个想法是委托一个特殊的css类:

代码语言:javascript
复制
<a href="#action">
 <xsl:if test="$nb_action = 0">
  <xsl:attribute name="class">inactive</xsl:attribute>
 </xsl:if>Action (offensive, defensive, reconnaissance)
</a>

但它仍然是一个纽带。

以下是一种解决方法:

代码语言:javascript
复制
<a><xsl:if test="$nb_action != 0">
  <xsl:attribute name="href">#action</xsl:attribute>
 </xsl:if>Action (offensive, defensive, reconnaissance)</a>

在没有href的情况下编写html <a>标签是正确的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-21 23:04:51

您可以将该Action文本作为变量。这个变量仍然出现在3个地方。

代码语言:javascript
复制
<xsl:variable name="textval">
Action (offensive, defensive, reconnaissance)</xsl:variable>
<xsl:choose>
 <xsl:when test="0">
  <a href="#action"><xsl:copy-of select="$textval"/></a>
 </xsl:when>
 <xsl:otherwise>
  <xsl:copy-of select="$textval"/>
 </xsl:otherwise>
</xsl:choose>

编辑:或者,如果您不介意额外的、无用的span标记,您可以使用

代码语言:javascript
复制
  <xsl:variable name="condition" select="---condition-here---"/>

  <xsl:variable name="tagname">
   <xsl:choose>
    <xsl:when test="$condition">a</xsl:when>
    <xsl:otherwise>span</xsl:otherwise>
   </xsl:choose>
  </xsl:variable>

  <xsl:element name="{$tagname}">
   <xsl:if test="$condition">
    <xsl:attribute name="href">#action</xsl:attribute>
   </xsl:if>
   Action (offensive, defensive, reconnaissance)
  </xsl:element>

(在火狐中,如果我们将$tagname设置为空字符串,那么该元素将不会被应用。但是处理器也可以raise an error,所以不要依赖它。)

票数 2
EN

Stack Overflow用户

发布于 2010-07-21 23:03:35

什么不存储字符串Action(..)放到一个变量中,然后放到代码中?

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

https://stackoverflow.com/questions/3300645

复制
相关文章

相似问题

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