I am trying to wrap any <table> elements within an <ol> or <ul> element with an <li> element. I am not having much success. I tried to copy the OOTB template and apply it to my h2d_extended.xsl, but I am not seeing my results. Here is my code from my h2d_extended.xsl file. Any help would be appreciated. For context, I am not seeing the wrapping <li> or the added <p>hello world</p>.
AEM Instance:
AEM 6.5 + SP7 + SP8 + XML Add On v3.8
<!-- Table inside of ol or ul -->
<xsl:template match="ol/table|ul/table" mode="convert-to-cals" priority="9">
<xsl:variable name="num-cols">
<xsl:choose>
<xsl:when test=".//col">
<!-- take col definitions -->
<xsl:value-of select="count(.//col[not(@colspan)]) + sum(.//col/@colspan)"/>
</xsl:when>
<xsl:when test="./thead">
<!-- take first row of table header -->
<xsl:value-of select="count(./thead/tr[1]/th[not(@colspan)]) + sum(./thead/tr[1]/th/@colspan)"/>
</xsl:when>
<xsl:when test="not(./thead) and ./tbody">
<!-- take first row of table body -->
<xsl:value-of select="count(./tbody/tr[1]/td[not(@colspan)]) + sum(./tbody/tr[1]/td/@colspan)"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>unable to determine column number</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="width">
<xsl:if test="@width">
<xsl:value-of select="substring-before(@width,'%')"/>
</xsl:if>
</xsl:variable>
<xsl:variable name="cols-in-first-row">
<xsl:choose>
<xsl:when test="tbody/tr">
<xsl:apply-templates select="(tbody[1]/tr[1]/td[1]|tbody[1]/tr[1]/th[1])[1]" mode="count-cols"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="(tr[1]/td[1]|tr[1]/th[1])[1]" mode="count-cols"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<li>
<p>hello world</p>
<table>
<xsl:call-template name="compute-table-borders"/>
<xsl:call-template name="compute-rowsep-colsep-defaults"/>
<xsl:apply-templates select="@class|@data-conditional"/>
<!--xsl:if test="@align"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:if-->
<xsl:choose>
<xsl:when test="number($width) < 100">
<xsl:attribute name="pgwide">0</xsl:attribute>
</xsl:when>
<xsl:when test="string-length($width)">
<xsl:attribute name="pgwide">1</xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="@rules='none' and ='0'">
<xsl:attribute name="frame">none</xsl:attribute>
<xsl:attribute name="rowsep">0</xsl:attribute>
<xsl:attribute name="colsep">0</xsl:attribute>
</xsl:when>
<xsl:when test="@border='0'">
<xsl:attribute name="rowsep">0</xsl:attribute>
<xsl:attribute name="colsep">0</xsl:attribute>
</xsl:when>
<xsl:when test="@rules='cols'">
<xsl:attribute name="rowsep">0</xsl:attribute>
</xsl:when>
<xsl:when test="@rules='rows'">
<xsl:attribute name="colsep">0</xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="@frame='void'">
<xsl:attribute name="frame">none</xsl:attribute>
</xsl:when>
<xsl:when test="@frame='above'">
<xsl:attribute name="frame">top</xsl:attribute>
</xsl:when>
<xsl:when test="@frame='below'">
<xsl:attribute name="frame">bottom</xsl:attribute>
</xsl:when>
<xsl:when test="@frame='border'">
<xsl:attribute name="frame">all</xsl:attribute>
</xsl:when>
<xsl:when test="@frame='box'">
<xsl:attribute name="frame">all</xsl:attribute>
</xsl:when>
<xsl:when test="@frame='hsides'">
<xsl:attribute name="frame">topbot</xsl:attribute>
</xsl:when>
<xsl:when test="@frame='lhs'">
<xsl:attribute name="frame">sides</xsl:attribute>
</xsl:when>
<xsl:when test="@frame='rhs'">
<xsl:attribute name="frame">sides</xsl:attribute>
</xsl:when>
<xsl:when test="@frame='vsides'">
<xsl:attribute name="frame">sides</xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="caption"/>
<tgroup colsep="1">
<xsl:attribute name="cols">
<xsl:value-of select="$cols-in-first-row"/>
</xsl:attribute>
<xsl:call-template name="create-colspec">
<xsl:with-param name="total-cols">
<xsl:value-of select="$num-cols"/>
</xsl:with-param>
</xsl:call-template>
<xsl:choose>
<xsl:when test="thead">
<thead>
<xsl:if test="thead/@class">
<xsl:attribute name="outputclass">
<xsl:value-of select="thead/@class"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="thead/tr" mode="convert-to-cals"/>
</thead>
</xsl:when>
<xsl:when test="tr[th and not(td)]">
<thead>
<xsl:if test="thead/@class">
<xsl:attribute name="outputclass">
<xsl:value-of select="thead/@class"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="tr[th and not(td)]" mode="convert-to-cals">
<!--ideally, do for-each only for rows that contain TH, and place within THEAD;
then open up the TBODY for the rest of the rows -->
<!-- unforch, all the data will go into one place for now -->
</xsl:apply-templates>
</thead>
</xsl:when>
</xsl:choose>
<tbody>
<xsl:if test="tbody/@class">
<xsl:attribute name="outputclass">
<xsl:value-of select="tbody/@class"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="tbody/tr[td]|tr[td]" mode="convert-to-cals"/>
</tbody>
</tgroup>
</table>
</li>
</xsl:template>
Thanks for reading