こんにちは、文字列をトークン化して変数に格納する 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 を初めて使用し、混乱しました。node-set を使用する代わりに、単純に使用しました
<xsl:for-each select="$string/word">
xsl:value-of select="string-length(.)" />
<br></br>
</xsl:for-each>
エンジンを変更せずに完璧に動作します:) :D