我们可以在.xsl文件中编码URL吗?

问题描述 投票:0回答:1

我们可以在.xsl文件中编码URL吗?如果是,那我们该怎么做?我用下面的代码:

Prompt type="label" pointer="abc.asp?mynumber={my-number}&myname={my-name}"

对于其他名称它可以正常工作,但是如果名称包含&,则表示它已损坏。有人可以帮我解决吗?

xslt urlencode
1个回答
0
投票

根据我的经验,浏览器可能会以&和&来处理,您可能最终得到的链接无论如何都无法正常工作。

如果不确定my-name节点可能包含的内容,那么最好先从中创建一个变量。然后,您可以确保先删除所有“&”号。

实际上,您应该尝试的第一件事是同意my-name节点从不包含与号。但是我知道那种请求经常被忽略,所以有一个解决方案。

如果使用变量,则可以包含查找和替换以删除/替换&。 xslt 1中没有为此提供的功能,但您可以改用转换功能]

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:template match="/Test">

  <xsl:variable name="safe-name" select="translate(my-name, '&amp;', '|')"/>

    MyName - <xsl:value-of select="$safe-name"/>

  </xsl:template>
</xsl:stylesheet>

我已经对此进行了快速测试,它可以与节点中的多个&配合使用(您永远都不能太小心)。希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.