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>

如果您使用多个具有相同名称的&lt;xsl:attribute&gt;s,XSLT 处理器将只使用最后一个。

【讨论】:

啊,这就是我最初尝试的方式。这确实有效,但是当我在 CSS 中有一个 :after 时它不适用于我的。 原来我刚刚订购了我的 CSS 很糟糕。谢谢。 :)【参考方案2】:

一个元素不能有两个同名的属性。来自XML specification:

一个属性名称不得在同一个起始标签或空元素标签中出现多次。

【讨论】:

以上是关于XSL:when - 应用多个属性的主要内容,如果未能解决你的问题,请参考以下文章

您可以在 xslt 测试属性中添加两个条件吗?

谁写过xlst 我想问用xsl:when表达式不等于号怎么写

如何在 C# 中应用多个 .Tag 属性?

将多个 AWS 资源设置为烧瓶应用程序对象的属性

UIImageView:将多个 UIViewContentMode 属性应用于一个 UIImageView?

如何将多个对象属性应用于 ngStyle