如果id有类,则使用XSLT

如果id有类,则使用XSLT,xslt,Xslt,我在任何地方都找不到这个。如果id为“cat”的div还分配了一个称为“true”的类,那么如何在xslt中编写一个if语句来显示单词“YES”?如果所讨论的div是当前节点,并且您当前不知道它的id是“cat”还是class属性,那么您可以编写 <xsl:if test=".[@id='cat' and contains(@class,'true')]"> YES </xsl:if> 在XSLT2.0中,我将编写如下内容: <xsl:if test=".[@

我在任何地方都找不到这个。如果id为“cat”的div还分配了一个称为“true”的类,那么如何在xslt中编写一个if语句来显示单词“YES”?

如果所讨论的div是当前节点,并且您当前不知道它的id是“cat”还是class属性,那么您可以编写

<xsl:if test=".[@id='cat' and contains(@class,'true')]">
  YES
</xsl:if>
在XSLT2.0中,我将编写如下内容:

<xsl:if test=".[@id='cat' 
              and 
              tokenize(@class, '\s') = 'true')]">
  YES
</xsl:if>

“divs with class=“unreal”-混乱的解决方案是在整个类字符串前后添加一个空格,并检查它是否包含
&32;真&32--即前后各有一个空格。(表示法是
&32;
,但此处需要实际的空格。)True;我想我已经说过了,但也许我没有。荷马点头。XPath 1.0中不允许使用构造
test=“.[@id='cat']”
,这可能是语法中的一个意外错误。这不是什么大问题,因为它可以写成
test=“@id='cat'”
。我认为有些实现允许语法,即使规范不允许。它在2.0中是允许的。
<xsl:if test=".[@id='cat' 
              and 
              tokenize(@class, '\s') = 'true')]">
  YES
</xsl:if>