此处的变量行为无法按预期工作。 我有一个名为fonttag的变量,其值为HTML行,包含开始和结束标记以及分隔符。
<xsl:variable name="fonttag">
<font face="ANGSANA NEW" size="12">|</font>
</xsl:variable>
当我尝试使用它时,为了获得部分字符串,我得到一个空字符串:
<xsl:value-of select="substring-before($fonttag ,'|')"/>
我期望子字符串:
<font face="ANGSANA NEW" size="12">
同样
<xsl:value-of select="$fonttag"/>
尽管,什么都不返回
<xsl:copy-of select="$fonttag"/>
返回整个字符串。还有另一种方法可以达到预期的效果吗?
派生问题:是否可以像这样嵌套xsl选择标签(无法使其工作)
<xsl:copy-of select="substring-before( <xsl:copy-of select="$fonttag"/>,'|')"/>
感谢
答案 0 :(得分:0)
我担心你会误解XSLT的工作原理。您的变量不包含字符串 "<font face="ANGSANA NEW" size="12">|</font>"
。它包含元素 font
,包含两个属性,字符串值为"|"
。 xsl:value-of
指令以及任何字符串函数(如substring()
)仅处理给定表达式的string value。