我正在执行 XSLT 转换以创建<button>
具有onclick
属性的 HTML 元素。当我在按钮的文本内容之前定义onclick
属性时,一切都按预期工作。以下是有效的代码:
<xsl:element name="button">
<xsl:attribute name="onclick">
console.log(600);
</xsl:attribute>
<xsl:text>Click Me</xsl:text>
</xsl:element>
输出:
<button onclick="console.log(600);">Click Me</button>
但是,如果我将其放在内容xsl:attribute
后面xsl:text
,如下所示:
<xsl:element name="button">
<xsl:text>Click Me</xsl:text>
<xsl:attribute name="onclick">
console.log(600);
</xsl:attribute>
</xsl:element>
该属性被忽略,输出仅包含文本:
<button>Click Me</button>
为什么放置xsl:attribute
在后面会xsl:text
导致属性消失?XSLT 中是否有规则要求在内容之前定义属性,如果是,背后的原因是什么?为什么会这样?