2017-02-22 19 views
0

異なる要素を持つXMLファイルを解析してCSVを構築しています。私はrole要素のIDを指しREFIDを持っている私の人素子では、このXSL変換:変数からIDで要素を取得

<xsl:template match="/root/persons/person"> 
    <xsl:for-each select="."> 
     <xsl:value-of select="name" /> 
     <xsl:text>;</xsl:text> 

     <xsl:variable name="refId"> 
      <xsl:value-of select="role/@refId"/> 
     </xsl:variable> 

     <!-- This is the problematic part --> 
     <xsl:value-of select="/root/roles/role[@id='$refId']"/> 

     <xsl:text>&#10;</xsl:text> 
    </xsl:for-each> 
</xsl:template> 

のような人物を反復します。上記のような変数にrefIdをロードしてロール名を取得するにはどうすればよいですか?

答えて

1

は、これを使用してみてください:

<xsl:value-of select="/root/roles/role[@id=string($refId)]"/> 

私たちはあなたのXMLを検証するために見ることができないので、あなたのパスが、正しいことを想定しています。

+0

これは機能します。お返事ありがとうございます –

+0

@juergend歓迎です:)私はこの問題を文字通り昨日持っていましたが、私の助けになった答えを見つけることができません。 – AntonH

関連する問題