0

私は午前中と昨日の午後を検索しましたが、それでも問題の解決策を見つけることができません。あなたが助けてくれたら素晴らしいでしょう。

私はapachefopでPDF形式に変換されるxsl-foファイルに取り組んでいます。パラメータを使用して、xmlファイルへのxpathを変更しようとしています。次の例よりもはるかに複雑なシステムですが、問題の根本にまで単純化しています。

私のxmlファイルが次のようになっているとします。

<sc931>
    <whyoming>
              <train>
                   <miles>98</miles>
                   <time>9888</time>
    </whyoming>
    <georgia>
              <train>
                   <miles>98</miles>
                   <time>9888</time>
    </georgia>
</sc931>

私がやろうとしているのは、テンプレートパラメータを使用して、次のようにこれらの値にアクセスすることです。

パラメータの宣言

<xsl:param name="state" select="whyoming"/>

電話

<xsl:value-of select="concat(/sc931/, $state, /train/miles)"/>

ただし、concat関数は適切なノードへのポインターではなく文字列を返すため、この呼び出しは機能しません。テンプレートパラメータを使用して、value-ofステートメントに指定されたアドレスを変更する正しい方法は何ですか?

4

1 に答える 1

3

XSLT 3.0より前では、動的XPath評価はありませんが、単純なケースでは、を使用するだけで十分です<xsl:value-of select="/sc931/*[local-name() = $state]/train/miles"/>

[編集]あなたのパラメータがとして定義されているのを見落としました。私の提案が機能<xsl:param name="state" select="whyoming"/>するためには、それをに変更する必要があります。<xsl:param name="state" select="'whyoming'"/>

于 2012-06-13T16:37:25.710 に答える