嗨,我在我的 xslt 中使用了一个外部命名模板,它标记了一个字符串并将其存储在一个变量中。我正在使用 Altova XML SPY,并且仅限于 xslt 1.0。问题是每次我必须将选项从内置 XSLT 引擎更改为 Microsoft。内置 xslt 引擎中是否有任何节点集函数或其他一些函数而不是节点集
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:import href="tokenize.xsl"/>
<xsl:template match="/string/upara">
<xsl:variable name="string">
<xsl:call-template name="tokenizeString">
<xsl:with-param name="list" select="/string/upara"/>
<xsl:with-param name="delimiter" select="' '"/>
</xsl:call-template>
</xsl:variable>
<xsl:for-each select="msxsl:node-set($string)/word">
<xsl:value-of select="string-length(.)" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我正在使用的 XML 是
<string>
<upara>This is a small string </upara>
</string>
字符串变量具有像这样的所有单词节点
<string>
<word>This</word>
<word>is</word>
现在我必须遍历每个单词并找到它的长度
请告诉我是否有更好的方法来做到这一点。
我得到了这个工作
抱歉,我是 XSLT 1.0 的新手,很困惑。我没有使用节点集,而是简单地使用了
<xsl:for-each select="$string/word">
xsl:value-of select="string-length(.)" />
<br></br>
</xsl:for-each>
无需更换引擎即可完美运行 :) :D