1

こんにちは、文字列をトークン化して変数に格納する 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

4

1 に答える 1

0

XML Spy には、結果ツリー フラグメント (RTF) をノードセットのように扱う習慣があります。これを直接述べているドキュメントは見つかりませんが、見つけることができます。

(RTF) を返し、変数に格納される xsl コマンドは、ノード セットであるかのようにクエリできますxsl:value-of

この質問には、検討する価値のある XSLT エンジンの非固有のアプローチがいくつかあります。

于 2013-11-01T00:49:02.900 に答える