我们可以在.xsl文件中编码URL吗?如果是,那我们该怎么做?我用下面的代码:
Prompt type="label" pointer="abc.asp?mynumber={my-number}&myname={my-name}"
对于其他名称它可以正常工作,但是如果名称包含&
,则表示它已损坏。有人可以帮我解决吗?
根据我的经验,浏览器可能会以&和&
来处理,您可能最终得到的链接无论如何都无法正常工作。
如果不确定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, '&', '|')"/>
MyName - <xsl:value-of select="$safe-name"/>
</xsl:template>
</xsl:stylesheet>
我已经对此进行了快速测试,它可以与节点中的多个&配合使用(您永远都不能太小心)。希望有帮助