[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Re: formatting issues

Subject: RE: Re: formatting issues
From: cknell@xxxxxxxxxx
Date: Wed, 01 Nov 2006 16:54:18 -0500
xsl apply templates paramater
I'll try to help, but first I need the answers to some questions.

The first template matches the element "states"
===========================
<xsl:template match="states">
  <br/>
  <xsl:if test="//state/sym='R'">
 ... content omitted for clarity ...
</xsl:template>
===========================

In your source XML document, is "states" the parent of all "state" elements, or do some "state" elements have "state" child elements?


Further along in this template you have this:
===========================
<xsl:for-each select="//state">
===========================

Unless you are planning to sort the elements, you probably don't need xsl:for-each, just use xsl:apply-templates.

Further along still you have this:
===========================
<td><xsl:choose>xsl:value-of select="Val3"/></td>
===========================

Why do you have an opening xsl:choose without a closing tag and no xsl:when or xsl:otherwise within?

Still further along you have this:
===========================
<xsl:apply-templates select="document(concat($server,'/getinfo.dox?...........)"/>
===========================

Just what is it you are trying to get by concatenating the value of the variable or paramater $server with the string "'/getinfo.dox?..........."?

These problems aside, if your real XSLT works at all then it must be legal XML, which your sample is clearly not. I suspect your problem lies in these templates:

<xsl:template match="data/Val5">
  <td><xsl:value-of select="."/></td>
</xsl:template>

<xsl:template match="data/Val6">
  <td><xsl:value-of select="node()"/></td>
</xsl:template>

<xsl:template match="data/Val7">
  <td><xsl:value-of select="node()"/></td>
</xsl:template>

<xsl:template match="data/Val8">
  <td><xsl:value-of select="node()"/></td>
</xsl:template>

If the root element of the document you are getting with 
<xsl:apply-templates select="document(concat($server,'/getinfo.dox?...........)"/>
is "data", then you have omitted the document root from the "match" attribute.

The correct XPath for these would begin with "/", as in match="/data/Val8".
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     ms <mina_hurray@xxxxxxxxx>
Sent:     Wed, 1 Nov 2006 12:45:41 -0800 (PST)
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  Re:  formatting issues

Hi:

Can someone please reply to this ? I have been pretyt
frustrated with this problem and would really
appreciate if anyone can help.

--- ms <mina_hurray@xxxxxxxxx> wrote:

> I have tried everything possible and have failed to
> format this XML.
> 
> My XSLT looks like this:
> 
> <xsl:template match="states">
> 		<br/>
> 		<xsl:if test="//state/sym='R'">
> 			<table width="100%">
> 				<tr>
> 					<td colspan="8">
> 						<b>STATES: </b>
> 					</td>
> 				</tr>
> 				<tr>
> 					<td width="9%">
> 						<u>Val1</u>
> 					</td>
> 					<td width="15%">
> 						<u>Val2</u>
> 					</td>
> 					<td width="7%">
> 						<u>Val3</u>
> 					</td>
> 					<td width="7%">
> 						<u>Val4</u>
> 					</td>
> 					<td width="9%">
> 						<u>Val5</u>
> 					</td>
> 					<td width="21%">
> 						<u>Val6</u>
> 					</td>
> 					<td width="15%">
> 						<u>Val7</u>
> 					</td>
> 					<td width="7%">
> 						<u>Val8</u>
> 					</td>
> 				</tr>
> 				<xsl:for-each select="//state">
> 					<xsl:choose>
> 						<xsl:when test="sym='R'">
> 							<tr>
> 								<td>
> 									<xsl:value-of select="Val1"/>
> 								</td>
> 								<td>
> 									<xsl:value-of select="Val2"/>
> 								</td>
> 								<td>
> 									<xsl:choose>
> 									
> 											<xsl:value-of select="Val3"/>
> 								
> 								</td>
> 								<td>
> 									<xsl:value-of select="Val4"/>
> 								</td>
> 								<xsl:variable name="v1">
> 									<xsl:value-of select="Val1"/>
> 								</xsl:variable>
> 								<xsl:variable name="v2">
> 									<xsl:value-of select="Val2"/>
> 								</xsl:variable>
> 						
> 								
> 								<xsl:apply-templates
>
select="document(concat($server,'/getinfo.dox?...........)"/>
> 							</tr>
> 						</xsl:when>
> 					</xsl:choose>
> 				</xsl:for-each>
> 			</table>
> 		</xsl:if>
> 	</xsl:template>
> 	<xsl:template match="results">
> 		<tr>
> 			<xsl:apply-templates/>
> 		</tr>
> 	</xsl:template>
> 	<xsl:template match="data">
> 		<xsl:apply-templates/>
> 	</xsl:template>
> 	<xsl:template match="data/Val5">
> 		<td>
> 			<xsl:value-of select="."/>
> 		</td>
> 	</xsl:template>
> 	<xsl:template match="data/Val6">
> 		<td>
> 			<xsl:value-of select="node()"/>
> 		</td>
> 	</xsl:template>
> 	<xsl:template match="data/Val7">
> 		<td>
> 			<xsl:value-of select="node()"/>
> 		</td>
> 	</xsl:template>
> 	<xsl:template match="data/Val8">
> 		<td>
> 			<xsl:value-of select="node()"/>
> 		</td>
> 	</xsl:template>
> 
> 
> Now, Val1, Val2, Val3, Val4 are available in the
> input
> XML SO I am not concerned about them becoz they
> format
> fine.
> 
> Val5, Val6, Val7, and Val8 are retrieved thru a
> server
> call using JSP where it return the XML which looks
> like  below:
> 
> <results>
> 
> 	<data>
> <Val5>something</Val5>
> <Val6>something</Val6>
> <Val7>something</Val7>
> <Val8>P</Val8>
> </data>
> 
> 	<data>
> <Val5>something</Val5>
> <Val6>something</Val6>
> <Val7>something</Val7>
> <Val8>P</Val8>
> </data>
> 
> 	</results>
> 
> How do I format this to XHTML view. The above XSLT
> does not seem to work on this. Thank you for all
> your help.
> 
> 
>  
>
____________________________________________________________________________________
> Want to start your own business? Learn how on Yahoo!
> Small Business 
> (http://smallbusiness.yahoo.com) 
> 
> 



 
____________________________________________________________________________________
We have the perfect Group for you. Check out the handy changes to Yahoo! Groups 
(http://groups.yahoo.com)

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.