小编owa*_*agh的帖子

如何测试参数是否已在XSLT v 2.0中传递到模板中?

我目前正在尝试从XSLT 1.0升级到XSLT 2.0.我在以前使用XSLT 1.0的模板中有以下内容: -

<xsl:template name="some_t">
  <xsl:param name="some_numeric_param"/>
  <xsl:if test="$some_numeric_param != ''">
    <xsl:attribute name="some_name">
      <xsl:value-of select="$some_numeric_param"/>
    </xsl:attribute>
  </xsl:if>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

现在,有三种情况我称之为模板: -

<xsl:call-template name="some_t">
  <xsl:with-param name="some_numeric_param" select="floor(number(./@attr1) div 20)"/>
</xsl:call-template>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,基本上内部模板只会创建名为"some_name"的属性,如果在源文档中给出了名为"attr1"的属性.

另外,我可以称之为另一种情况是没有这个参数: -

<xsl:call-template name="some_t">
</xsl:call-template>
Run Code Online (Sandbox Code Playgroud)

所以我基本上想要它做的是当我传入一个参数然后创建一个属性,否则不要.无论我的样式表是否正确,这都适用于XSLT 1.0,但在XSLT 2.0中它给出了一个错误:

Error on line 195 of movwin.xsl:
  XPTY0004: Cannot compare xs:double to xs:string
Transformation failed: Run-time errors were reported
Run Code Online (Sandbox Code Playgroud)

有帮助吗?我正在使用Saxon 9.4处理器.

xslt saxon xslt-2.0 xslt-1.0

2
推荐指数
1
解决办法
3490
查看次数

如何找到哪个版本的 gcc 对应哪个版本的 binutils?

正如问题听起来一样。

如果对于任何给定的版本对都没有通用的方法来回答这个问题,那么有人至少可以回答 gcc 3.4.6 和 ld 2.15.92.0.2 是否彼此对应的具体问题?

谢谢。

我正在看问题:-

有关链接器失败的帮助:.gnu.linkonce.t

请解释此链接错误:在 .rodata 部分中引用

我得到的错误与这些问题的提问者完全相同。

gcc version binutils

1
推荐指数
1
解决办法
869
查看次数

预处理前的C/C++文件

是否可以在预处理之前查看ac/c ++文件?或者更确切地说,只是半心半意的预处理?基本上有一个

#define <commonly_used_word> 0
Run Code Online (Sandbox Code Playgroud)

在第三方库标题中,我想弄清楚它在哪里.所以基本上,我只是希望编译器包含所有头文件而不是预处理器.

c-preprocessor preprocessor-directive

1
推荐指数
1
解决办法
203
查看次数

这是否会导致引用超出范围后指向任何内容?

以下代码是否安全?

class B {
  public:
    int& b;
    B (int& _b) :
      b(_b) {}
};

B* foo() {
  int a;
  return new B(a);
}
Run Code Online (Sandbox Code Playgroud)

foo返回的对象中的引用是否会指向任何内容(因为int a超出范围)或编译是否计算出来?

c++ constructor scope reference

0
推荐指数
1
解决办法
91
查看次数