如何在XSL中获取HTTP GET参数?示例场景及问题求助
问题解决:通过XSLT获取URL参数并输出指定内容
原XSLT代码存在以下问题:
- 仅声明了
id参数但未赋值,浏览器不会自动将URL查询参数绑定到XSLT参数 <xsl:if test="$id=(value)">语法错误,且缺少闭合标签</xsl:if>- 未实现用
<strong>标签包裹id值的需求
以下是修正后的report.xsl代码,通过JavaScript函数获取URL中的id参数,实现预期输出:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:user="http://tempuri.org/user"> <!-- 定义JavaScript函数获取URL查询参数 --> <xsl:script language="javascript" implements-prefix="user"> function getQueryParam(paramName) { const urlParams = new URLSearchParams(window.location.search); return urlParams.get(paramName) || ''; } </xsl:script> <xsl:template match="/"> <html> <body> <p>My id is: <strong><xsl:value-of select="user:getQueryParam('id')"/></strong></p> </body> </html> </xsl:template> </xsl:stylesheet>
兼容旧版浏览器的函数版本
如果需要支持不兼容URLSearchParams的旧浏览器,可替换上述函数为:
function getQueryParam(paramName) { const queryString = window.location.search.substring(1); const params = queryString.split('&'); for (let i = 0; i < params.length; i++) { const pair = params[i].split('='); if (pair[0] === paramName) { return pair[1] || ''; } } return ''; }
原data.xml文件无需修改,保持现有内容即可。
内容的提问来源于stack exchange,提问作者Krzysztof Kazmierczyk
相关产品推荐
相关产品推荐

