我遇到以下問題(經常在此域上討論,但仍無法獲得確切的解決方案): 我有一個XML像下面:XSLT - 如何循環XML重複/重複節點並獲得第一次發生
<?xml version="1.0" encoding="UTF-8"?>
<S001_subs_block>
<BS0900_summary_block>
<BS09001>
<details>
<descr_en>Services Monthly Fee</descr_en>
<Amt>10.00</Amt>
</details>
<details>
<descr_en>Calls</descr_en>
<Amt>5.00</Amt>
</details>
<details>
<descr_en>*International Roaming</descr_en>
<Amt>7.00</Amt>
</details>
</BS09001>
</S001_subs_block>
<S001_subs_block>
<BS0900_summary_block>
<BS09001>
<details>
<descr_en>Services Monthly Fee</descr_en>
<Amt>8.00</Amt>
</details>
<details>
<descr_en>Calls</descr_en>
<Amt>9.00</Amt>
</details>
<details>
<descr_en>*International Roaming</descr_en>
<Amt>14.00</Amt>
</details>
</BS09001>
</S001_subs_block>
我需要的是顯示HTML僅輸出第一反覆循環孩子值並把它放在一個表。 我的XSLT嘗試是:
<table class="zui-table zui-table-rounded">
<tr>
<th>Subscriber Invoice Summary</th>
</tr>
<xsl:for-each select="//BS09001/details">
<xsl:if test="position()=1">
<tr>
<td><xsl:value-of select="descr_en"/></td>
<td><xsl:value-of select="Amt"/></td>
</tr>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="//BS09002/details">
<xsl:if test="position()=1">
<tr>
<td><xsl:value-of select="descr_en"/></td>
<td><xsl:value-of select="Amt"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
這不是工作,我想要的HTML表格中顯示只值的第一次出現,那就是:
<table class="zui-table zui-table-rounded">
<tr>
<th>Account Invoice Summary</th>
</tr>
<tr>
<td>Services Monthly Fee</td><td>10.00</td>
</tr>
<tr>
<td>Calls</td><td>5.00</td>
</tr>
<tr>
<td>*International Roaming</td><td>14.00</td>
</tr>
</table>
現在我不需要HTML代碼,我需要的XSLT只選擇第一循環重複值,並在情況下,可能走了過來多反覆循環具有迭代次數控制。使用Muenchian分組的做什麼(我相信)你想 希望我是清楚的:-(
使用'<的xsl:for-每個選擇= 「// BS09001 /細節[1]」>'拿到第一條目的詳細信息,並刪除了'XSL:if' –