【问题标题】:XSLT: Can't output `& ` even whilst trying to espaceXSLT:即使在尝试退出时也无法输出`&`
【发布时间】:2013-07-04 11:00:04
【问题描述】:

问题 我正在尝试逃避&,以便我可以使用js来重定向用户

代码

//first try
location.replace('//<xsl:call-template name="domainLocator"></xsl:call-template><xsl:value-of select="$dotNetAppFolder" />/Display?page=splash_device&xpf=android');
//second try
<xsl:text disable-output-escaping="yes" >/Display?page=splash_device&xpf=android</xsl:text>

期望的结果

web/Display?page=splash_device&amp;xpf=android

所以,这个问题对我来说似乎很简单,我只是想转义 & 这样我的页面就不会抛出错误。

注意:另外,我知道这个问题以前被问过,但没有被接受的问题,它已经 4 岁了。认为有人必须知道答案,否则不可能。

【问题讨论】:

  • 你能告诉我们你的预期输出是什么吗?令人困惑的是,您说要转义 &amp; 却使用 disable-output-escaping,顾名思义,禁用转义。
  • 已更新以显示所需的输出。你可以猜到我不知道我在用 XSLT 做什么,从另一个线程转义显示输出意味着这将允许转义。
  • 从你想要的结果看来你想要做的是逃避&amp;s,在这种情况下我建议尝试disable-output-escaping="yes",但它会是最好将大部分 JS 放在一个单独的 JS 文件中,然后通过函数将所需的值传递给它。
  • 是的,遗憾的是它不是一个选项,将 JS 放在一个单独的文件中。那么我想,为什么disable-output-escaping="yes" 不为我工作?如果这是正确的行为!
  • 并非所有 XSLT 处理器都支持disable-output-escaping。你用的是什么处理器?

标签: xml xslt escaping invalid-characters


【解决方案1】:

本以为这很简单。

尝试使用:

&amp; 

代替:

&

希望有帮助!

【讨论】:

    【解决方案2】:

    目前无法在 xslt 中包含 &amp;。可悲的是我不得不把它全部去掉

    location.replace('//<xsl:call-template name="domainLocator"><xsl:with-param name="version" select="'desktop'" /></xsl:call-template>');
    

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 1970-01-01
      • 2023-03-11
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 2020-10-01
      相关资源
      最近更新 更多