慢慢地对此发疯,并尝试了这里找到的各种解决方案,但到目前为止似乎都没有起作用。
我有一些XSL:
<xsl:variable name="reserved">
<xsl:value-of select="utils:getReservedCodes()"/>
</xsl:variable>它的值是由一些JScript决定的:
function getReservedCodes() {
reservedCodes = reservedCodesList.join("");
return reservedCodes;
} 如果我使用以下命令输出reserved的值
<xsl:value-of select="$reserved"/> 我得到的东西是这样的:
<codey value="-STB"></codey><codey value="-SO"></codey>然后,我尝试将此变量的内容用作节点集:
<xsl:for-each select="msxsl:node-set($reserved)/codey">
<xsl:value-of select="@value"/>
</xsl:for-each>这个for-each循环不会输出任何内容。我从这里的其他答案中得到的印象是,这可能是一个名称空间问题,所以我尝试使用xmlns=""声明变量,我用<Codes xmlns="">括起了所有的codey条目,我还尝试使用JScript前缀,以防出现这种情况,但我似乎无法正常工作。
我的样式表中没有默认名称空间:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:utils="urn:utils">如果它有任何用处,我的脚本头如下所示:
<msxsl:script implements-prefix="utils" language="javascript">如果有人有任何建议,我将永远感激不尽。
发布于 2018-07-26 16:10:49
为了防止对其他人有帮助,我通过应用this问题中的代码并让我的JScript返回一个逗号分隔的字符串,设法解决了我的问题。
https://stackoverflow.com/questions/51502407
复制相似问题