2012-10-26 42 views
1

希望你能幫助我指出這個問題的正確方向...使用XSL爲XML屬性作爲ID傳遞到HTML

我所試圖做的事: 我有一個XML文件,我使用XSLT轉化爲HTML。其中的一部分包括添加一個「隱藏」按鈕。我想使用隱藏按鈕從XML中刪除節點,我的想法是爲該按鈕提供與相關XML元素中的myId屬性相同的id,這使得可以輕鬆地將按鈕的onClick與XML匹配要隱藏的元素。

這裏有一個位XML的:

<sectionStatement myId="1">Awesome statement</sectionStatement> 
<sectionStatement myId="2">I am a statement</sectionStatement> 
<sectionStatement myId="3">I am another statement</sectionStatement> 

這裏有一個位XSL在那裏我」堅持:

<xsl:for-each select="sectionStatement"> 
    <p><xsl:value-of select="."/><a class='showHideBtn' href='#'>Hide</a></p> 
</xsl:for-each> 

...所以我想與HTML的3段落得,每一個都有一個「隱藏」按鈕,我希望按鈕有相關的ID(1,2或3)。這相當於將id="<xsl:value-of select='@myId'/>"添加到標籤中......但我已經嘗試過了,它不起作用!

謝謝你的建議:-) 馬克

回答

1

使用屬性值模板<a id="{@myId}" class="showHideBtn" href="#">Hide</a>

+0

乾淨整潔,完美地完成了我的工作。謝謝! –

0

你可以使用xsl:attribute添加動態,有條件的屬性和適用模板元素。

<p> 
    <xsl:attribute name="id"> 
    optionalText<xsl:value-of select="@myId"/> 
    </xsl:attribute> 
</p> 

如果您已經知道該值,則轉換語法更簡單。

<xsl:for-each select="sectionStatement"> 
    <p><xsl:value-of select="."/> 
    <a class='showHideBtn' href='#' id='{@myId}'> 
    Hide 
    </a> 
    </p> 
</xsl:for-each> 
+0

工作!非常感謝:-) –