xsl-list
[Top] [All Lists]

RE: [xsl] conditional based html formated output - reg

2010-04-02 11:56:07

You're making a fundamental error here in trying to make your stylesheet
output tags (bits of lexical XML). That's not the way XSLT works:
instructions create nodes in a tree. The start/end tag pair <tr></tr>
represent a single node in the tree, which can only be constructed as an
atomic operation.

It's hard to see what you're trying to do and therefore to show it it should
be corrected, but in general you should replace

<xsl:if test="x">
  <td>
</xsl:if>
  xxx 
<xsl:if test="x">
  </td>
</xsl:if>

by 

<xsl:choose>
  <xsl:when test="x">
    <td>
      xxx
    </td>
  </xsl:when>
  <xsl:otherwise>
     xxx
  </xsl:otherwise>
</xsl:choose>

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay 

-----Original Message-----
From: Ramesh Kumar [mailto:cnrameshkumar(_at_)gmail(_dot_)com] 
Sent: 02 April 2010 11:31
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] conditional based html formated output - reg

Dear All,

Can anyone help me to clear the error in the below xsl template.
I am trying to create a table. The cells are created based on 
key value.
So i need to start a row <TR> based on a condition.
Also the end tag </TR> for that row will be based on another 
condition.
But without end tag </TR> the <xsl:if> element is giving error.

      <xsl:template name="FrameMatrix">
              <xsl:param name="rowkey"/>
              <xsl:param name="seqkey"/>
              <xsl:param name="colkey"/>
              <xsl:if test="not(contains($RowKeyList, 
concat(',', rowkey)))">
                      <tr>
                              <td>
                                      <xsl:value-of select="RowKey"/>
                              </td>
                              <td>
                                      <xsl:value-of 
select="CategoryName"/>
                              </td>
              </xsl:if>

              <xsl:for-each select="key('col-name', 
concat($colkey, $rowkey, $seqkey))">
                      <xsl:call-template name="data" />
              </xsl:for-each>

              <xsl:if test="not(contains($RowKeyList, 
concat(rowkey, ',')))">
                      </tr>
              </xsl:if>
      </xsl:template>

-- 


Regards,
Ramesh

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--