对此很生气,并尝试了这里找到的各种解决方案,但到目前为止似乎没有任何效果。
我有这样的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=""
声明变量,我用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">
如果外面有人有任何建议,我将永远感激不已。