XSLT 版本 1 URL 编码
XSLT 版本 1 中有 URL 编码功能吗? 我需要类似于 JavaScript 中的encodeURIComponent 函数的东西?
看来这是不可能的,因为我正在使用 .NET 平台,因为 XSLT 应用于 Sharepoint 页面。有没有一种方法可以在 XML 中调用 javascript 编码函数来编码此购买,代码片段如下:
<xsl:template name="BuildLink">
<xsl:param name="PrimarySubject" />
<xsl:text>?PrimarySubject=</xsl:text>
<xsl:value-of select="$PrimarySubject" />
</xsl:template>
谢谢,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用嵌入在 XSLT 中的 JScript ...
并像
custom:uriencode( url_to_encode )
一样调用它。您首先需要通过添加到 标记
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:custom="http://youdomain.ext/custom"
[更新]
我为自定义名称空间设置的 URL 可以是任何内容.. 它只是一个唯一标识符..
(该链接的结论是,如果不使用 url 作为标识符,就不会那么混乱。)
[udpdate 2]
一些添加的信息.
如果您使用 MSXML6,则需要使用
AllowXsltScript
属性手动允许在 XSLT 中编写脚本。(参考 )根据您加载 xslt 的方式及其设置,请查看 使用 msxsl:script 的脚本块了解如何允许脚本
you can use JScript embedded in XSLT ...
and call it like
custom:uriencode( url_to_encode )
You will first need to define the namespace though by adding to the
<xsl:stylesheet ...
tag thexmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:custom="http://youdomain.ext/custom"
[update]
the Url i put for the custom namespace could be anything .. it is just a unique identifier..
(the link concludes that it is less confusing if you do not use a url as the identifier..)
[udpdate 2]
Some added info.
If you use MSXML6 then you need to manually allow scripting in the XSLT, by using the
AllowXsltScript
property.. ( reference )Depending on the way you load the xslt and its settings have a look at the examples at Script Blocks Using msxsl:script on how to alow scripts
这些 XSLT 1.0 样式表 可用于执行 URL 编码/解码:
These XSLT 1.0 stylesheets can be used to perform URL encode/decode:
没有一个。 XSLT 不了解 URL 和 HTML。
根据您使用的语言和平台,您也许可以使用 XSLT 扩展 可以做到这一点。
There isn't one. XSLT has no knowledge of URLs and HTML.
Depending on the language and platform you are using, you may be able to use a XSLT extension that does that.
在某些情况下,您可以使用 EXSLT(解析器提供的扩展): Dave Pawson 关于此问题的 XSLT 常见问题解答。
然而,XSLT 是图灵完备的,因此理论上您可以在 XSLT 本身中编写一个基本的 URL 编码器(我不会尝试)。
You can, under certain circumstances use EXSLT (parser-provided extensions): Dave Pawson's XSLT FAQ on this one.
However, XSLT is Turing complete, so you could write a basic URL encoder in XSLT itself, theoretically (I wouldn't try).