2012-10-30 42 views
1

我想使用XSLT根據它在XML中找到的組的數量生成一個動態類。例如,XML中將會有X個組,所有都有子節點。我需要每個循環根據列表中的哪個組號來動態創建類名。我可以毫無問題地填充組名,但是我找不到任何有關如何將系統生成的部分追加到課程中的明確信息。 例如:對xslt中的每個循環使用一個整數

  • groupblue類= 「groupblue-1」
  • grouporange類= 「grouporange-2」
  • groupred類= 「groupred-3」

等等等等,對於XML中的每個組。

我希望這是有道理的,有人能夠幫助!提前致謝。

編輯:

XML

<group> 
    <title>Title Content</title> 
    <text>Content 1</text> 
</group> 
<group> 
    <title>Title Content</title> 
    <text>Content 2</text> 
</group> 
<group> 
    <title>Title Content</title> 
    <text>Content 3</text> 
</group> 

HTML輸出

<div id="titlecontent-1"> 
    text from group 1 content 
</div> 
<div id="titlecontent-2"> 
    text from group 2 content 
</div> 
<div id="titlecontent-3"> 
    text from group 3 content 
</div> 
+0

你能張貼一些示例XML和期望的輸出?它將使查看分組的標準更容易,併爲如何實現它提出解決方案。 –

+0

補充,希望有幫助! – Barlow1984

回答

2

這種轉變

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="group"> 
    <div id="{translate(title, ' ', '')}-{position()}"> 
     <xsl:value-of select="text"/> 
    </div> 
</xsl:template> 
<xsl:template match="text()"/> 
</xsl:stylesheet> 

當這個良好的XML文檔(一個包裝提供的XML片段插入到頂部元件)上施加:

<t> 
    <group> 
     <title>Title Content</title> 
     <text>Content 1</text> 
    </group> 
    <group> 
     <title>Title Content</title> 
     <text>Content 2</text> 
    </group> 
    <group> 
     <title>Title Content</title> 
     <text>Content 3</text> 
    </group> 
</t> 

產生想要的結果

<div id="TitleContent-1">Content 1</div> 
<div id="TitleContent-2">Content 2</div> 
<div id="TitleContent-3">Content 3</div> 
+0

謝謝!作品款待 – Barlow1984

+0

@ Barlow1984,不客氣。 –