xsl-list
[Top] [All Lists]

RE: Re: [xsl] formatting issues

2006-11-01 14:54:51
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(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     ms <mina_hurray(_at_)yahoo(_dot_)com>
Sent:     Wed, 1 Nov 2006 12:45:41 -0800 (PST)
To:       xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject:  Re: [xsl] 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(_at_)yahoo(_dot_)com> 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) 



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





 
____________________________________________________________________________________
We have the perfect Group for you. Check out the handy changes to Yahoo! Groups 
(http://groups.yahoo.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>
--~--




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