【发布时间】:2016-09-21 21:47:19
【问题描述】:
我正在尝试逐列遍历表格并将其转换为单个 div。我想让 tr[1]/td[1]、tr[2]/td[1]、tr[3]/td[1] ... 都成为一个 div 的一部分。然后我想继续讨论 tr[1]/td[2], tr[2]/td[2], tr[3]/td[2]。
当我使用更简单的代码时,我能够转换我的表格,但我在跳下每个 tr 行时遇到问题。下面是我的 XSLT。任何帮助都会很棒。我对 XSLT 很陌生,但不是编程。 div/样式只是为了让输出更容易看到。
XML:
<table class="table-with-caption">
<thead>
<tr>
<th>Column Title 1</th>
<th>Column Title 2</th>
<th>Column Title 3</th>
<th>Column Title 4</th>
</tr>
</thead>
<tfoot>
<tr>
<td class="alert-info table-scroll-option" colspan="4">column</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>TR1, TD1</td>
<td><span>TR1, TD2</span></td>
<td><span>TR1, TD3</span></td>
<td><span>TR1, TD4</span></td>
</tr>
<tr>
<td><span>TR2, TD1</span></td>
<td>Atque ab corporis modi deserunt adipisci, expedita temporibus.</td>
<td>Vitae, sint ullam velit accusantium, dolorum ad dolorem.</td>
<td>Iusto expedita minus praesentium vero voluptatum aut laboriosam.</td>
</tr>
<tr>
<td><span>TR3, TD1</span>.</td>
<td>Consequuntur corporis quo libero fuga ducimus provident minus.</td>
<td>Natus reiciendis molestias earum, dolorum similique amet quasi.</td>
<td>Consequuntur sunt minus laudantium, magnam labore, debitis quia!</td>
</tr>
</tbody>
</table>
XSL:
<xsl:for-each select="tbody/tr[position()<=$count-rows]">
<xsl:variable select="1" name="counter" />
<div style="border:thin solid red; padding 5px; margin:5px;">
<xsl:for-each select="tr[$counter]/td[position() le $count-cols]">
<div style="border:thin solid blue; padding 5px; margin:5px;">
<xsl:apply-templates select="node()[name() != 'caption']|attribute()[name() != 'class' and name() != 'tfoot']" />
</div>
<xsl:with-param name="counter" select="$counter + 1"/>
</xsl:for-each>
</div>
</xsl:for-each>
</div>
</xsl:when>
预期输出:
<div style="border:thin solid red; padding 5px; margin:5px;">
<div style="border:thin solid blue; padding 5px; margin:5px;">TR1, TD1</div>
<div style="border:thin solid blue; padding 5px; margin:5px;"><span>TR2, TD1</span></div>
<div style="border:thin solid blue; padding 5px; margin:5px;"><span>TR3, TD1</span></div>
</div>
【问题讨论】:
-
请显示输入和预期输出的示例 - 请参阅:minimal reproducible example。
-
谢谢,我添加了额外的代码,我会查看您提供的链接。