У меня есть XML-файл, который я хочу удалить <td>
, когда parent:tr/precedeing-sibling::tr/td[position()]/text() = curent()[position()]/tex()
получил его, но я хочу добавить диапазон строк после удаления td.
<table>
<tr>
<td>Emp</td>
<td>Salary</td>
<td>Id</td>
<td>Address</td>
<td>contact</td>
</tr>
<tr>
<td>SIngh</td>
<td>50000</td>
<td>01</td>
<td>Delhi</td>
<td>0112145</td>
</tr>
<tr>
<td>SIngh</td>
<td>50000</td>
<td>02</td>
<td>033</td>
<td>045</td>
</tr>
</table>
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="td">
<xsl:variable name="pos" select="count(parent::tr/preceding-sibling::tr//td[ position()]/text() = current()[position()]/text())"/>
<xsl:choose>
<xsl:when test="parent::tr/preceding-sibling::tr/td[ position()]/text() = current()[position()]/text()"/>
<xsl:otherwise>
<td>
<xsl:if test="preceding-sibling::*[1][self::td[ position()]]/text() = parent::tr/preceding-sibling::tr/td[ position()]/text()">
<xsl:attribute name="rowspan">
<xsl:value-of select="$pos"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates/>
</td>
</xsl:otherwise>
</xsl:choose>
</xsl:template>