Xslt 将具有colspan的表转换为DataTables
我的最终目标是将带有Xslt 将具有colspan的表转换为DataTables,xslt,dita,Xslt,Dita,我的最终目标是将带有colspan的HTML表转换为带有XSLT样式表的Dita docbook格式表 对于那些不熟悉DITA表的人,它使用namest和nameend属性来实现colspannamest和nameend分别是起始列和结束列的名称。列名由colspecs元素指定 <colspec colname="c1" colnum="1"> 然后我使用以下命令生成colspec元素的$colNum,其中colname和column从1增加到$colNum <xsl:f
colspan
的HTML表转换为带有XSLT样式表的Dita docbook格式表
对于那些不熟悉DITA表的人,它使用namest
和nameend
属性来实现colspan
namest
和nameend
分别是起始列和结束列的名称。列名由colspecs
元素指定
<colspec colname="c1" colnum="1">
然后我使用以下命令生成colspec元素的$colNum
,其中colname
和column
从1增加到$colNum
<xsl:for-each select="1 to $colNum">
<colspec colname="{concat('c', .)}" column="{.}" />
</xsl:for-each>
对于第三行,第二个td,它实际上是第四列!我的xslt无法通过研究那一行来判断。我在sudo代码中得到了这一点
position() of current td + sum(preceding-sibling[colspan])
在这种情况下,这应该给我3,但我不知道如何解释实际上将td 1列向后推的行跨度
让我知道是否有更好的替代方法来做这件事
我知道这是一个复杂的问题。感谢您的任何帮助!万分感谢 也许尝试整数而不是数字?谢谢你,mkaatman!真管用!我也曾想过使用xs:integer,但我将它们放在带有as属性的xsl:variable中。这让我的xml过程非常不愉快。现在xs:integer($colNum)
<table>
<tbody>
<tr>
<th colspan="3">
<p>Name</p>
</th>
<th>
<p>Description</p>
</th>
</tr>
<tr>
<td rowspan="6"/>
<td colspan="2">country-name</td>
<td>Country</td>
</tr>
<tr>
<td colspan="2">extended-address</td>
<td colspan="1"><p>Extra field for address information. </p></td>
</tr>
</tbody>
</table>
position() of current td + sum(preceding-sibling[colspan])