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]

Re: problem chain templates together


After some re-design, I was able to accomplish what I
needed to do.  Please ignore the request.

Thanks,
Xiaocun

--- Xiaocun Xu <xiaocunxu@yahoo.com> wrote:
> Hi,
> 
> I have a problem figure out how to chain my
> templates
> together.  My XML has alternating organization and
> user  sections, where there could be multiple user
> records.  One organization and the following user
> section belongs to the same organization and
> therefore
> processed together.  My strategy is to search for
> the
> unique section headings, and then process the rows
> after the heading, **but before the start of the
> next
> heading**.  The last part is where I can't seem to
> figure out.  Following are the XML and XSL I
> currently
> have:
> 
> XML:
> <row row="1">
> 	<cell column="1">*SupplierOrganizationCode</cell>
> 	<cell column="2">SupplierName</cell>
> 	<cell column="3">Address</cell>
> </row>
> <row row="2">
> 	<cell column="1">s1</cell>
> 	<cell column="2">test name for s1</cell>
> 	<cell column="3">5 Brown Road, Boston, MA</cell>
> </row>
> <!-- row 3 is empty to separate the sections -->
> <row row="4">
> 	<cell column="1">EmailAddress</cell>
> 	<cell column="2">WorkPhoneNumber</cell>
> </row>
> <!-- could have n contacts for s1, this example
> shows
> 2 -->
> <row row="5">
> 	<cell column="1">test1@s1.com</cell>
> 	<cell column="2">(800) 837-8171</cell>
> </row>
> <row row="6">
> 	<cell column="1">test2@s1.com</cell>
> 	<cell column="2">(800) 837-8172</cell>
> </row>
> <!-- row 7 is empty to separate the sections -->
> <row row="8">
> 	<cell column="1">*SupplierOrganizationCode</cell>
> 	<cell column="2">SupplierName</cell>
> 	<cell column="5">Address</cell>
> </row>
> <row row="9">
> 	<cell column="1">s2</cell>
> 	<cell column="2">test name for s2</cell>
> 	<cell column="5">200 Wheeler Road, Boston,
> MA</cell>
> </row>
> <!-- row 10 is empty to separate the sections -->
> <row row="11">
> 	<cell column="1">EmailAddress</cell>
> 	<cell column="2">FaxNumber</cell>
> 	<cell column="3">WorkPhoneNumber</cell>
> </row>
> <!-- could have n contacts for s2, this example
> shows
> 1 -->
> <row row="12">
> 	<cell column="1">test1@s2.com</cell>
> 	<cell column="2">(800) 837-8271</cell>
> </row>
> 
> XSL:
> <xsl:template match="/">
> 	<xsl:apply-templates select="row"
> mode="SupplierHeader"/>
> </xsl:template>
> <xsl:template match="row" mode="SupplierHeader">
> 	<!-- find the Supplier header row.  The first
> element
> is SupplierOrganizationCode or
> *SupplierOrganizationCode -->
> 	<xsl:if test="cell[1] = 'SupplierOrganizationCode'
> or
> substring(cell[1], 2) = 'SupplierOrganizationCode'">
> 		<xsl:apply-templates
> select="following-sibling::row[@row = node()/@row +
> 1]" mode="Supplier"/>
> 	</xsl:if>
> </xsl:template>
> <xsl:template match="row" mode="Supplier">
> 	<!-- display supplier info omitted -->
> 	<xsl:apply-templates
> select="following-sibling::row"
> mode="ContactHeader"/>
> </xsl:template>
> <xsl:template match="row" mode="ContactHeader">
> 	<!-- find the Contact header row.  The first
> element
> is EmailAddress or *EmailAddress -->
> 	<xsl:if test="cell[1] = 'EmailAddress' or
> substring(cell[1], 2) = 'EmailAddress'">
> 		<xsl:apply-templates
> select="following-sibling::row[@row &gt; node()/@row
> and @row &lt; ???]" mode="Contact"/>
> 	</xsl:if>
> </xsl:template>
> <xsl:template match="row" mode="Contact">
> 	<!-- display contact info omitted -->
> </xsl:template>
> 
> In ContactHeader template, the ??? in
> xsl:apply-templates is what I can't seem to figure
> out.  Any help would be very much appreciated.
> 
> Thanks,
> Xiaocun
> 
> __________________________________________________
> Do You Yahoo!?
> Make international calls for as low as $.04/minute
> with Yahoo! Messenger
> http://phonecard.yahoo.com/
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 


__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.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]