This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Table styling


My Xml is like this.
<findForMe>
      <community>
         <community_type>my Care</community_type>
         <services>
            <service>
               <service_id>8</service_id>
               <service_type>asd</service_type>
               <care_types>
                  <care_type_desc id="4">SCHOOLS</care_type_desc>
                  <provtype>
                     <provtype_id>115</provtype_id>
                     <provtype_type>as Schools</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>116</provtype_id>
                     <provtype_type>xxSchools</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>114</provtype_id>
                     <provtype_type>wa Schools</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>117</provtype_id>
                     <provtype_type>Schoolxdc</provtype_type>
                  </provtype>
               </care_types>
            </service>
         </services>
         <services>
            <service>
               <service_id>1</service_id>
               <service_type>ghghg</service_type>
               <care_types>
                  <care_type_desc id="10">ghgg</care_type_desc>
                  <provtype>
                     <provtype_id>73</provtype_id>
                     <provtype_type>ff Agencies</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>74</provtype_id>
                     <provtype_type>ty Agencies</provtype_type>
                  </provtype>
               </care_types>
            </service>
         </services>
         <services>
            <service>
               <service_id>2</service_id>
               <service_type>fix Care</service_type>
               <care_types>
                  <care_type_desc id="3">dCAMPS</care_type_desc>
                  <provtype>
                     <provtype_id>10</provtype_id>
                     <provtype_type>reCamps</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>9</provtype_id>
                     <provtype_type>dt Camps</provtype_type>
                  </provtype>
               </care_types>
               <care_types>
                  <care_type_desc id="1">bnCARE</care_type_desc>
                  <provtype>
                     <provtype_id>2</provtype_id>
                     <provtype_type> bb Care Center</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>1</provtype_id>
                     <provtype_type>bbCare Home</provtype_type>
                  </provtype>
               </care_types>
               <care_types>
                  <care_type_desc id="2">IN HOME</care_type_desc>
                  <provtype>
                     <provtype_id>5</provtype_id>
                     <provtype_type>Au Pair Agency</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>7</provtype_id>
                     <provtype_type>Home Health Care 
Agencies</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>6</provtype_id>
                     <provtype_type>In Home Agencies</provtype_type>
                  </provtype>
               </care_types>
            </service>
         </services>
         <services>
            <service>
               <service_id>7</service_id>
               <service_type>sss Needs</service_type>
               <care_types>
                  <care_type_desc id="3">CAMPS</care_type_desc>
                  <provtype>
                     <provtype_id>10</provtype_id>
                     <provtype_type>Day Camps</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>9</provtype_id>
                     <provtype_type>Residential Camps</provtype_type>
                  </provtype>
               </care_types>
               <care_types>
                  <care_type_desc id="1">DAY CARE</care_type_desc>
                  <provtype>
                     <provtype_id>2</provtype_id>
                     <provtype_type>Child Care Center</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>1</provtype_id>
                     <provtype_type>Family Child Care Home</provtype_type>
                  </provtype>
               </care_types>
               <care_types>
                  <care_type_desc id="2">IN HOME</care_type_desc>
                  <provtype>
                     <provtype_id>5</provtype_id>
                     <provtype_type>Au Pair Agency</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>7</provtype_id>
                     <provtype_type>Home Health Care 
Agencies</provtype_type>
                  </provtype>
                  <provtype>
                     <provtype_id>6</provtype_id>
                     <provtype_type>In Home Agencies</provtype_type>
                  </provtype>
               </care_types>
            </service>
         </services>
      </community>
   </communities>
</findForMe>

My xsl is as follows

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:output method="html"/>



<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>

<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>

<xsl:template match="/">
<table  width="624" >
  <tr>
    <td>
	<form name="find4meForm" 
action="index.html?function=getFindForMeQuestions.html" method="post">
	<input type="hidden" name="serviceid" /><br/>
	 <span class="hed1">Search with Our Help</span><br/><br/>
	 <span class="ctrtxtfont2">
	Use this feature to search for the provider or resource you need from the 
categories below.
</span> <br/><br/>

	<xsl:apply-templates select="findForMe/communities/community "/><br/>
	<input type="image" src="/art/questium/btn_next.gif" border="0"/>
	</form>
    </td>
  </tr>
</table>
</xsl:template>

<xsl:template match="community">

<table width="100%" cellpadding="0" cellspacing="0"  border="0" 
class="ctrbakbdr" >
	<tr class="ctrbakbdr" > <td colspan="3" class="ctrbakhed1"><span 
class="ctrtxtbold">
	<xsl:value-of select="community_type"/></span></td></tr>
	<xsl:variable name="cols" select="3"/>
  <xsl:variable name="all_services" select="services"/>
    <!-- start a new data row for every 1st, 4th, 7th, etc. 'services' 
element -->
    <xsl:for-each select="$all_services[position() mod $cols = 1]">
      <xsl:variable name="this_services_pos" select="position()"/>
      <xsl:variable name="current_row_services" 
select="$all_services[position() &gt;= $this_services_pos and position() 
&lt; $this_services_pos + $cols]"/>
      <!-- go generate the 2 table rows for this one data row -->
      <xsl:call-template name="make_table_rows">
        <xsl:with-param name="cols" select="$cols"/>
        <xsl:with-param name="current_row_services" 
select="$current_row_services"/>
      </xsl:call-template>
    </xsl:for-each>
	</table>
</xsl:template>
<xsl:template name="make_table_rows">
   <xsl:param name="cols" select="1" />
  <xsl:param name="current_row_services" select="/.."  />
  <!-- selects above are defaults in case nothing was passed in -->
  <xsl:if test="$current_row_services">
    <xsl:variable name="num_empty_cols" select="$cols - 
$current_row_services"/>
    <tr class="ctrbakhed2">
      <xsl:for-each select="$current_row_services">

          <td width="33%" class="ctrbakbdr" ><xsl:apply-templates 
select="service" mode="myservice"/></td>


       <xsl:if test="$num_empty_cols=1">
         <td class="ctrbakbdr">&#160;</td>
      </xsl:if>
			<xsl:if test="$num_empty_cols=2">
         <td class="ctrbakbdr">&#160;</td>
				 <td class="ctrbakbdr">&#160;</td>
      </xsl:if>
			</xsl:for-each>
    </tr>
    <tr>
      <xsl:for-each select="$current_row_services">
        <td width="33%" valign="top" class="ctrbakbdr">
           <xsl:apply-templates select="service" mode="care_type"/>
        </td>
      </xsl:for-each>
      <xsl:if test="$num_empty_cols=1">
         <td class="ctrbakbdr">&#160;</td>
      </xsl:if>
			<xsl:if test="$num_empty_cols=2">
         <td class="ctrbakbdr">&#160;</td>
				 <td class="ctrbakbdr">&#160;</td>
      </xsl:if>
    </tr>
  </xsl:if>
</xsl:template>
<!-- <xsl:template name="make_empty_cells">
  <xsl:with-param name="num_empty_cols" select="0" />
  <xsl:if test="num_empty_cols">
    <td>&#160;</td>
    <xsl:call-template name="make_empty_cells">
      <xsl:with-param name="num_empty_cols" select="num_empty_cols-1"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template> -->

<xsl:template match="service" mode="myservice">

		 <span class="ctrtxtfont2">
		<xsl:value-of select="service_type"/>
		 </span>

</xsl:template>
<xsl:template match="service" mode="care_type">

		 <span class="ctrtxtfont3">
		<xsl:apply-templates select="care_types" mode="quicksearch"/>
		 </span>

</xsl:template>

<xsl:template match="care_types" mode="quicksearch">
	 <span class="ctrtxtfont3bold"><xsl:value-of 
select="care_type_desc"/></span>
	<br />
	<xsl:for-each select="provtype">
		<input type="radio" name="provtypeid" value="{provtype_id}" 
onClick="document.forms[1].serviceid.value='{../../service_id}'"/>
		<span> <xsl:value-of select="provtype_type"/></span><br />
	</xsl:for-each>
	<p/>
</xsl:template>


</xsl:stylesheet>

As I am rendering table of three colomns,my problem is when I am looping for 
services to create new row
It creates first row correctly but for second row instead of going to 
position 4 of services it goes to second position and so on .
Can any one suggest where I am making mistake or correction in Xsl or in 
code.
I will be thankfull.
thanks in anticipation.
arup



_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]