XSL:when - 应用多个属性
Posted
技术标签:
【中文标题】XSL:when - 应用多个属性【英文标题】:XSL:when - Apply multiple attributes 【发布时间】:2019-09-27 16:56:14 【问题描述】:我正在尝试通过测试将多个类应用于属性。
这可能真的很简单,但我不知道该怎么做。我尝试将这些类分隔在一行中,并像这样堆叠它们:
<xsl:when test="@name = 'Example' and @status = 'Example2'">
<xsl:attribute name="class">style1</xsl:attribute>
<xsl:attribute name="class">style2</xsl:attribute>
</xsl:when>
当我以这种方式尝试时,它会应用第二类,但不是第一类。当我将两个类放在同一行时,它根本不起作用。
非常感谢您的想法!
【问题讨论】:
您必须选择其中一个,因为一个元素只能具有具有唯一名称的属性。 【参考方案1】:html“类”属性应该包含所有类的列表,用空格分隔:
<xsl:when test="@name = 'Example' and @status = 'Example2'">
<xsl:attribute name="class">style1 style2</xsl:attribute>
</xsl:when>
如果您使用多个具有相同名称的<xsl:attribute>
s,XSLT 处理器将只使用最后一个。
【讨论】:
啊,这就是我最初尝试的方式。这确实有效,但是当我在 CSS 中有一个 :after 时它不适用于我的。 原来我刚刚订购了我的 CSS 很糟糕。谢谢。 :)【参考方案2】:一个元素不能有两个同名的属性。来自XML specification:
一个属性名称不得在同一个起始标签或空元素标签中出现多次。
【讨论】:
以上是关于XSL:when - 应用多个属性的主要内容,如果未能解决你的问题,请参考以下文章
谁写过xlst 我想问用xsl:when表达式不等于号怎么写