1

我正在学习一大堆代码,其中的脚本是用 C++、xml、xsl、python..etc 编写的,并建立了一些接口。

在这组代码中,我有一些 .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++ 脚本吗?

4

1 回答 1

4

XSLT 与 XPath 齐头并进,在 XPath 中,美元符号用于启动变量或参数引用,因此在 XSLT 中有意义地使用美元符号是例如

<xsl:variable name="var1" select="/foo/bar"/>
<xsl:value-of select="$var1"/>

但是,在您的示例中,美元符号出现在 XSLT 输出的文本节点中,而不是出现在 XPath 表达式中,在这种情况下,美元符号没有特殊含义,它只是 XSLT 结果可以包含的数千个 Unicode 字符之一。您需要询问代码的作者或阅读输出格式的规范,以了解美元符号在该输出格式中是否有任何特殊含义。

于 2015-10-14T10:04:08.860 回答