1

对此慢慢发疯,并尝试了此处找到的各种解决方案,但到目前为止似乎没有任何效果。

我有一些这样的 XSL:

<xsl:variable name="reserved">
    <xsl:value-of select="utils:getReservedCodes()"/>
</xsl:variable>

其中的值由一些 JScript 确定:

function getReservedCodes() {
    reservedCodes = reservedCodesList.join("");
    return reservedCodes;
}   

如果我输出reservedusing的值

<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="",我已经用 包围了所有codey条目,<Codes xmlns="">并且我还尝试使用 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">

如果有人有任何建议,我将永远感激不尽。

4

1 回答 1

0

以防万一它帮助其他人登陆这里,我设法通过应用这个问题的代码并让我的 JScript 返回一个逗号分隔的字符串来解决我的问题。

于 2018-07-26T08:10:48.677 回答