我正在尝试输出变量的文字字符串值,之后根据节点是否存在来设置它.我认为条件检查逻辑是正确的.但它没有输出价值......
<xsl:variable name="subexists"/>
<xsl:template match="class">
<xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
<xsl:choose>
<xsl:when test="joined-subclass">
<xsl:variable name="subexists" select="'true'"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="subexists" select="'false'"/>
</xsl:otherwise>
</xsl:choose>
subexists: <xsl:value-of select="$subexists" />
Run Code Online (Sandbox Code Playgroud)
我希望它输出"true"的"true"的文字字符串.但它没有输出任何东西.请帮忙!谢谢!!!
我只想确认是否可以在xsl变量中插入html标签?例
<xsl:variable name="htmlContent">
<html>
<body>
hiiii
</body>
</html>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)
如果我使用
<xsl:value-of select="$htmlContent"/>
Run Code Online (Sandbox Code Playgroud)
我得到了
<html>
<body>
hiiii
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
可能吗?我试过了
<xsl:value-of disable-output-escaping="yes" select="$htmlContent"/>
Run Code Online (Sandbox Code Playgroud)
虽然我没有得到所需的输出
我不明白这个样式表的输出:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="root/sub"/>
</xsl:template>
<xsl:template match="sub">
<xsl:variable name="seq">
<xsl:sequence select="*" />
</xsl:variable>
<xsl:message>
<xsl:value-of select="@id" />
<xsl:text>: </xsl:text>
<xsl:value-of select="count($seq)" />
</xsl:message>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
当应用于以下XML时:
<root>
<sub id="empty" />
<sub id="one"><one/></sub>
<sub id="two"><one/><one/></sub>
<sub id="three"><one/><one/><one/></sub>
</root>
Run Code Online (Sandbox Code Playgroud)
xsl:message元素编写的输出是:
empty: 1
one: 1
two: 1
three: 1
Run Code Online (Sandbox Code Playgroud)
我期待这一个:
empty: 0
one: 1
two: 2
three: 3
Run Code Online (Sandbox Code Playgroud)
为什么count($seq)在这种情况下总是返回1?你如何改变变量定义,以便我以后可以测试它是否空虚?(简单<xsl:variable name='seq' select='*' />会返回预期答案,但不是一个选项......我想between在此模板中更改变量,并稍后测试它是否空虚).