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]

Re: Counting nodes - now specifying body in stylesheet


My apologies, after testing the first example again, the xsl commands do
work - however when I use the sample code below (which is more like the
actual code I'm using), my table ends up being a mile wide once I add the
body element.  All the information is there, but it is appearing off-screen
(I never noticed this before).  This doesn't happen without the body
element.  I removed the "width" attribute from the tables, and that
eliminated the problem, but now my tables are too small.  I guess the
percentage is not recognized properly.

Last, when I specify the body attributes (e.g. using a background image or
color), the body only applies to the immediate area around the text/tables,
not the entire document.  So the result is a small area with a background,
and whitespace for the rest of the page.  Is there a solution for that?

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:template match="/">
<HTML>
<body bgcolor="#bbbbbb">
<TABLE cellpadding="2" width="96%" bordercolor="#000000" cellspacing="2">
  <TR>
    <xsl:for-each select="metadata/idinfo/citation/citeinfo/onlink">
    <B><font face="Arial"><a><xsl:attribute name="href"><xsl:value-of
select="."/></xsl:attribute>View Map</a></font></B>
    <xsl:if test="(position() != last())"><br/>
    </xsl:if>
    </xsl:for-each><br/>
  </TR>
  <TR>
    <TD COLSPAN="2" BORDER="2" align="right"><font color="#00000"
face="Arial, Helvetica, sans-serif" size="3"><B><xsl:value-of
select="metadata/idinfo/citation/citeinfo/title"/> - <xsl:value-of
select="metadata/idinfo/natvform"/></B></font></TD>
  </TR>
</TABLE>
<TABLE width="100%" BORDER="2" cellpadding="2" bordercolor="#000000">
  <TR>
    <TD HEIGHT="30" VALIGN="bottom" bgcolor="#FFFFFF" bordercolor="#000000"
cellpadding="2"> <font face="Arial, Helvetica, sans-serif" size="2"><A
NAME="ident"
href="/computing/services/spatialdata/documentation/fesmetadatastd_rev3.htm#
1a">1</A></font></TD>
    <TD COLSPAN="2" align="center"><font color="#000000" face="Arial,
Helvetica, sans-serif" size="2"><B>IDENTIFICATION
INFORMATION</B></font></TD>
  </TR>
  <TR>
    <TD ROWSPAN="4"><font face="Arial, Helvetica, sans-serif" size="2"><a
href="/computing/services/spatialdata/documentation/fesmetadatastd_rev3.htm#
1a">1.1</a></font></TD>
    <TD COLSPAN="2" align="center" bgcolor="#cccccc"><font color="#000000"
face="Arial, Helvetica, sans-serif" size="2"><b>Citation</b></font></TD>
  </TR>
  <TR>
    <TD bgcolor="#f5f5f5"><font face="Arial, Helvetica, sans-serif"
size="2"><b><font color="#000000">Originator</font></b></font></TD>
    <TD bgcolor="#f5f5f5"><font color="#000000" face="Arial, Helvetica,
sans-serif" size="2"><xsl:value-of
select="metadata/idinfo/citation/citeinfo/origin"/></font></TD>
  </TR>
</TABLE>
</body>
</HTML>
</xsl:template>
</xsl:stylesheet>

I'm viewing the XML document through Netscape 6.02 - I don't know what
processor it is using.  How can I find out?

Here is a sample of what my XML code would look like:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<metadata xml:lang="en">
   <idinfo>
     <citation>
       <citeinfo>
         <onlink>Online Link URL 1</onlink>
         <onlink>Online Link URL 2 (and so on)</onlink>
         <origin>Originiator name</origin>
       </citeinfo>
     </citation>
   </idinfo>
</metadata>

Thanks for your help,
Mike

----- Original Message -----
From: "Wendell Piez" <wapiez@mulberrytech.com>
To: <xsl-list@lists.mulberrytech.com>
Sent: Tuesday, July 02, 2002 11:49 AM
Subject: Re: [xsl] Counting nodes - now specifying body in stylesheet


> Mike,
>
> Definitely switch to XSLT. The sooner you switch, the more grief you'll
> save yourself.
>
> At 11:12 AM 7/2/2002, you wrote:
> >Regarding the namespace I am using, one of the reasons I have not moved
to
> >the newer namespace is that I cannot seem to make an output stylesheet
look
> >very nice using the http://www.w3.org/1999/XSL/Transform namespace.
> >
> >Perhaps, someone could give me suggestions with this problem:
> >
> >The biggest issue I have is when I try to define the body of the
stylesheet.
> >In the example below, I have a couple simple xsl commands, and I've
defined
> >a body with a background color.
> >
> >Normally, I would get a list of all the
> >"metadata/idinfo/citation/citeinfo/onlink" elements, followed by the
> >"metadata/idinfo/citation/citeinfo/origin" element.  However, once I have
> >entered the "<body>" tag, every xsl command following the for-each
command
> >end up blank - the "metadata/idinfo/citation/citeinfo/origin" will not
> >appear in the result, and I get no processing errors.  If the "<body>"
tag
> >and it's closing tag "</body>" are removed from the code below, then
> >everything works fine, but I'm stuck with unformatted results.
>
> Honestly, this is baffling. Please test very carefully (using the same
> XPath expressions in your for-each select) to confirm that it's the
> presence or absence of the <body> node that makes the difference. There's
> no way in XSLT it should; it does not change the context for the
evaluation
> of any expressions.
>
> Which processor are you using?
>
> >I've tried looking at formatting objects in XSL, but haven't been able to
> >get anything to work yet.
>
> If you're targetting web display, write XSLT that creates HTML (for now).
> At present FOs are still being used mainly to generate print output (e.g.
> in PDF).
>
> ><?xml version="1.0"?>
> ><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> >version="1.0">
> ><xsl:template match="/">
> ><HTML>
> ><body bgcolor="#cccccc">
> >
> ><xsl:for-each select="metadata/idinfo/citation/citeinfo/onlink">
>
> If you're not getting your values reported, it's probably because this
> XPath returns no nodes. Does your source look more or less like
>
> <?xml version="1.0"?>
> <DEFANGED_metadata>
>    <idinfo>
>      <citation>
>        <citeinfo>
>          <onlink>Here's the value you want</onlink>
>        </citeinfo>
>      </citation>
>    </idinfo>
> </metadata>
>
> <DEFANGED_metadata> being your document ("root") element? If not, your
XPath won't
> work. (If you post a snippet of your source, it's easy enough to see what
> XPath you need.)
>
> >     <xsl:value-of select="." />
> >     <xsl:if test="current()[(position() != last())]">
>
> This should be (position() != last())
> The test as given is never true (since the position of a node is always
> last when it's the only node selected).
>
> >         <br/>
> >     </xsl:if>
> ></xsl:for-each>
> >
> ><xsl:value-of select="metadata/idinfo/citation/citeinfo/origin"/>
> >
> ></body>
> ></HTML>
> ></xsl:template>
> ></xsl:stylesheet>
>
>  From the design of this stylesheet, it also looks like you might want to
> do a bit of homework on templates. You don't really need them for this
> simple application, but you will.
>
> Cheers,
> Wendell
>
>
>
> ======================================================================
> Wendell Piez                            mailto:wapiez@mulberrytech.com
> Mulberry Technologies, Inc.                http://www.mulberrytech.com
> 17 West Jefferson Street                    Direct Phone: 301/315-9635
> Suite 207                                          Phone: 301/315-9631
> Rockville, MD  20850                                 Fax: 301/315-8285
> ----------------------------------------------------------------------
>    Mulberry Technologies: A Consultancy Specializing in SGML and XML
> ======================================================================
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 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]