2017-02-22 67 views
0

我正在解析具有不同元素的XML文件以構建CSV。我遍歷這樣的人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> 

在我的person元素中,我有一個refId引用一個角色元素的ID。我怎樣才能獲得角色名稱與refId加載到像上面的變量?

回答

1

嘗試使用這樣的:

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

我假設你的道路是正確的,因爲我們不能看到你的XML驗證。

+0

它的工作原理。謝謝 –

+0

@juergend不客氣:)我昨天從字面上看過這個問題,但是找不到幫助我的SO答案。 – AntonH