[英]XSL create html header with rowspan = number of iterations in for-each loop
我正在嘗試做的是格式化表頭以覆蓋在for-each循環中輸入的行數。 我曾想建立一個單獨的for-each循環來計算條目數並增加一個變量以供以后使用,但是我想這不適用於xsl。 這是我第一次嘗試使用它。 這是我嘗試設置的方法:
<xsl:variable name= "increment" select="0" />
<xsl:for-each select = "/keyboard/brand">
<xsl:for-each select = "/keyboard/brand/model">
<xsl:variable name="increment" select="$increment + 1" />
</xsl:for-each>
<tr>
<th rowspan = $increment><xsl:value-of select = "brand"/></td>
<xsl:for-each select = "/keyboard/brand/model">
<td><xsl:value-of select = "keytype"/></td>
<td><xsl:value-of select = "backlit"/></td>
</tr>
<tr>
</xsl:for-each>
<xsl:variable name= "increment" select="0" />
</xsl:for-each>
這是我正在使用的xml的一部分:
<keyboard>
<brand>Logitech
<model>MK270
<keytype>Membrane</keytype>
<backlit check = "no">Qwerty</backlit>
<backlit check = "no">Numpad</backlit>
<interface>Wireless USB</interface>
<batterypowered>Yes</batterypowered>
<programmablekeys location = "none">None</programmablekeys>
<launchkeys location = "top">Media Controls</launchkeys>
</model>
<model>K350
<keytype>Membrane</keytype>
<backlit check = "no">Qwerty</backlit>
<backlit check = "no">Numpad</backlit>
<interface>Wireless USB</interface>
<batterypowered>Yes</batterypowered>
<programmablekeys location = "none">None</programmablekeys>
<launchkeys location = "side">Zoom Controls</launchkeys>
<launchkeys location = "top">Media Controls</launchkeys>
</model>
<model>G110
<keytype>Membrane</keytype>
<backlit check = "yes">Qwerty</backlit>
<backlit check = "yes">Numpad</backlit>
<interface>USB 2.0</interface>
<batterypowered>No</batterypowered>
<programmablekeys location = "side">12 programmable G-keys</programmablekeys>
<launchkeys location = "top">Audio/Mic/Media Controls</launchkeys>
</model>
</brand>
我想做的是讓品牌覆蓋模型占用的所有行。 我將把每個模型放在自己的行中。
我已經讀過我應該使用position()函數而不是嘗試使用它的方法,但是我不確定在這種情況下如何實現該功能,因為我需要在position()之前確定行跨大小將完成計數。
我確定還有其他錯誤需要解決,例如我還沒有弄清楚如何不在最終迭代中添加最后一個tr,但這將在以后出現。 因此,我需要添加的其余數據也會如此。
我還不了解您想要哪種表結構,但是在<xsl:for-each select = "/keyboard/brand">
您可以使用例如<th rowspan="{count(model)}">
來獲得例如<th rowspan="3">
對於您的示例, <th rowspan="3">
是一個跨越三行的單元格,然后您可能希望在其中用內部<xsl:for-each select="model"><tr><td>...</td>...</tr></xsl:for-each>
填充它們<xsl:for-each select="model"><tr><td>...</td>...</tr></xsl:for-each>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.