2012-04-23 13 views
2

値の選択の結果を別の値の選択のパラメータに渡そうとしています。 は、ここで擬似声明(myVarに)私は別の選択値-の のパラメータに選択値-の結果を渡すようにしようとしていますXSLT use-of-select(入れ子にされた値の選択)

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output omit-xml-declaration="yes" /> 
    <xsl:variable name="data" select="document('user.xml')/user/data" /> 
    <xsl:template match="/"> 
     <xsl:for-each select="form/field"> 
      <p class="field"> 
       <xsl:attribute name="style">left:<xsl:value-of 
       select="left" />;top:<xsl:value-of select="top" />; 
       </xsl:attribute> 
       myVar = <xsl:value-of select="text" /> 
       <xsl:value-of select="$data[@key = {@myVar}]/@value" /> 
      </p> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 
+0

だから質問は何ですか?誰もいないようです。ソースXML文書とは何ですか?希望の結果は何ですか?変換で実装する必要がある要件は何ですか?質問を編集し、この欠落した重要な情報をすべて提供してください。 –

+0

これは明らかにナンセンスです: 'select =" $ data [@key = {@myVar}]/@ value "'しかし、してください、あなたの質問にナンセンスを入力し、人々にそれを修正するように頼むことは期待しないでください。それはどういう意味だろうと推測していますか? –

答えて

1

との完全なコードです。

 myVar = <xsl:value-of select="text" /> 
     <xsl:value-of select="$data[@key = {@myVar}]/@value" /> 

上の行は、構文的に間違っている - selectは、AVTを受け入れていない唯一の属性です。希望の結果がで上記を置き換える達成するために

<xsl:value-of select="$data[@key = current()/text]/@value" /> 

説明:XSLT current()機能の適切な使用。

関連する問題