2012-01-20 29 views
4

以下の私のXSLTです:現在のノード変数の親ノード要素を取得する方法は?

<xsl:template match="/"> 
      <xsl:call-template name="generateLinks"> 
     <xsl:with-param name="currentPageBranchVariable" select="//Item[@CurrentPageBranch='true']"></xsl:with-param> 
     </xsl:call-template> 

    </xsl:template> 

そして:

<xsl:template name="generateLinks"> 
    <xsl:param name="currentPageBranchVariable"></xsl:param> 

    <xsl:value-of select="$currentPageBranchVariable/@FullName"/> 

    // how to get the parent node of $currentPageBranchVariable? 

    </xsl:template> 

見ることができるように、$ currentPageBranchVariableは、アイテムのノードを含む第2のテンプレート用の変数です。

親要素をそこから得る方法はありますか?

私は以下を試みたが、うまくいきませんでした:

<xsl:value-of select="../$currentPageBranchVariable/@FullName"/> 
<xsl:value-of select="parent::node()/$currentPageBranchVariable/@FullName"/> 
<xsl:value-of select="parent($currentPageBranchVariable)/@FullName"/> 

は疑問がクリアされている願っています。

多分私がしようとしていることは不可能でしょうか?

ありがとう、

答えて

5

$currentPageBranchVariableItemノードを含む第2のテンプレート ための変数です。

親要素をそこから得る方法はありますか?

だけを使用します。

$currentPageBranchVariable/.. 

これは、すべてのノードの親のセット(1それぞれが)(この場合はただ1)$currentPageBranchVariableに含まれる選択されます。

2

あなたは間違った場所に軸を置いていました。

式で文脈ノードの親を選択しましたが、$currentPageBranchVariableではありません。テンプレートを/の一致から呼び出したので、@FullNameを選択する親はありません。

$currentPageBranchVariableから親を選択する必要があります。これは、その変数の後に親軸を使用します。

いずれかが動作します。

<xsl:value-of select="$currentPageBranchVariable/../@FullName" /> 
    <xsl:value-of select="$currentPageBranchVariable/parent::*/@FullName" /> 
関連する問題