xsl-list
[Top] [All Lists]

Re: [xsl] Need help combing two elements

2009-03-29 23:05:33
and my XSL is the following (well a snippet of it, ...

Actually, it would probably be easier to provide advice if you sent
the entire XSLT (or a pointer to it), as it is quite difficult to
test what you sent, as we don't have access to $reportType,
LabHeaderCell, etc.

I've got your input:

 <Row Type="Data">
  <Cell>Mar 23, 2006</Cell>
  <Cell>08:44</Cell>
 </Row>

But what do you want the output to look like?


While we're here, though, some thoughts follow.

      <xsl:for-each select="Row">
       <xsl:if test="@Type='Header'">
         <xsl:for-each select="Cell">
           <fo:table-column/>
         </xsl:for-each>
       </xsl:if>
     </xsl:for-each>

Couldn't this be expressed a bit more simply as

      <xsl:for-each select="Row[(_at_)Type='Header']/Cell">
        <fo:table-column/>
      </xsl:for-each>

?

    <xsl:choose>
     <xsl:when test="@Status='Panic'">
       <fo:table-cell color="red" background-color="white" border="1pt solid
         black" wrap-option="wrap" overflow="hidden">
         <fo:block font-size="8pt" padding="1mm" margin-left=".25mm"
           overflow="hidden" language="ru" hyphenate="true">
           <xsl:value-of select="."/>
         </fo:block>
       </fo:table-cell>
     </xsl:when>
     <xsl:otherwise>
       <fo:table-cell color="black" background-color="white" border="1pt solid
         black" wrap-option="wrap" overflow="hidden">
         <fo:block font-size="8pt" padding="1mm" margin-left=".25mm"
           overflow="hidden" language="ru" hyphenate="true">
           <xsl:value-of select="."/>
         </fo:block>
       </fo:table-cell>
     </xsl:otherwise>
   </xsl:choose>

Since most of the content of the <when> and the <otherwise> are the
same, I'd be inclined to factor out the similarities:

  <xsl:template name="LabDataCell">
    <xsl:variable name="color">
      <xsl:choose>
        <xsl:when test="@Status='Panic'">red</xsl:when>
        <xsl:otherwise>black</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <fo:table-cell color="{$color}" background-color="white"
      border="1pt solid black" wrap-option="wrap" overflow="hidden">
      <fo:block font-size="8pt" padding="1mm" margin-left=".25mm"
        overflow="hidden" language="ru" hyphenate="true">
        <xsl:value-of select="."/>
      </fo:block>
    </fo:table-cell>
  </xsl:template>


I'm sure others on the list will point out if & where I'm wrong.


--~------------------------------------------------------------------
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>
--~--