我正在学习一大堆代码,其中脚本是用C ++,xml,xsl,python ......等编写的,并且建立了一些接口。
在这组代码中,我有一些.efa脚本(以xml格式编写的simkin脚本),其中大多数都有这样的标识符:
CONST_ACTIVATION_STATE$ON
然后我找到一个C ++代码,它读取这些.efa文件并根据格式解析这个标识符。我很困惑为什么定义了这种标识符,但后来我在xsl脚本中发现了这个
Example usage for efa's:
<xsl:choose><xsl:when test="starts-with(string(../@name),'global:')">
CONST_GLOB_DEF_<xsl:value-of select="script:toConstant(string(substring-after(../@name, ':')))"/>$<xsl:value-of select="script:toConstant(string(param/@name))"/>
</xsl:when>
<xsl:otherwise>
CONST_<xsl:value-of select="script:toConstant(string(/task/@name))"/>_<xsl:value-of select="script:toConstant(string(../@name))"/>$<xsl:value-of select="script:toConstant(string(param/@name))"/>
</xsl:otherwise>
</xsl:choose>
<p/>
除了这个xsl脚本,C ++解析器和.efa文件之外,我找不到与这种标识符相关的其他脚本。由于我是这个领域的新手,我想问一下这个标识符的定义是否是因为xsl脚本。并且,“$”是xsl中具有特定含义的特殊字符吗?如果我不喜欢这个美元符号,我可以在xsl脚本中更改它,然后相应地修改efa和C ++脚本吗?
答案 0 :(得分:4)
XSLT与XPath密切相关,在XPath中,美元符号用于启动变量或参数引用,因此在XSLT中有意义地使用美元符号是
<xsl:variable name="var1" select="/foo/bar"/>
<xsl:value-of select="$var1"/>
但是,在您的示例中,美元符号出现在XSLT输出的文本节点中,而不出现在XPath表达式中,在这种情况下,美元符号没有特殊含义,它只是XSLT结果中可包含的数千个Unicode字符之一。您需要询问代码的作者或阅读输出格式的规范,以确定美元符号在该输出格式中是否具有任何特殊含义。