This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: XSL-List Digest V4 #273
- From: David Chryst <dchryst at yahoo dot com>
- To: xsl-list at lists dot mulberrytech dot com, xsl-list-digest at lists dot mulberrytech dot com
- Date: Wed, 17 Apr 2002 10:37:54 -0700 (PDT)
- Subject: [xsl] Re: XSL-List Digest V4 #273
- Reply-to: xsl-list at lists dot mulberrytech dot com
Jacob,
first, your input XML needs to be well-formed, that is
all attribute values must be contained in single- or
double-quotes, you must have exactly 1 root element
(named any name) and every element must be closed.
Second, suppose your input now looks like this:
<root>
<INPUT TYPE="text" name="q" size="12" maxlength="255"
value=""/>
<INPUT type="submit" name="btnG" VALUE=" Google "/>
<input size="30" name="p"/>
<input type="submit" value="Search"/>
</root>
you can in 1 template use an xsl:choose element to
handle an input element with a type=submit differently
than other types of input elements.
try this XSL:
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" />
<xsl:template match="INPUT">
<xsl:call-template name="ProcessInputElement"/>
</xsl:template>
<xsl:template match="input">
<xsl:call-template name="ProcessInputElement"/>
</xsl:template>
<xsl:template name="ProcessInputElement">
<xsl:variable name="MyType" select="concat(@TYPE,
@type)"/>
<xsl:choose>
<xsl:when test="translate($MyType,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ') = 'submit'">
<xsl:variable name="MyLabel"
select="concat(@VALUE, @value)"/>
<do type="accept" label="{$MyLabel}"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="MyName"
select="concat(@NAME, @name)"/>
<xsl:variable name="MySize"
select="concat(@SIZE, @size)"/>
<xsl:variable name="MyMaxlength"
select="concat(@MAXLENGTH, @maxlength)"/>
<input name="{$MyName}" size="{$MySize}"
maxlength="{$MyMaxlength}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
> I want to write a generic conversion that will
> convert:
>
> <FORM method=GET
> action="http://www.google.com/search">
> <INPUT TYPE=text name=q size=12 maxlength=255
> value="">
> <INPUT type=submit name=btnG VALUE=" Google ">
> </FORM>
>
> to:
>
> <input name="q" size="12" maxlength="255">
> <do type="accept" label="Google">
>
>
> And also convert:
>
> <input size=30 name=p>
> <input type=submit value=Search>
>
> to:
> <input name="p" size="30">
> <do type="accept" label="Search">
>
>
> Is this possible to do with one template?? I just
> don't seem to know
> how to approach this. Can anybody help?
>
> Jacob Glenn
>
>
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
> ------------------------------
>
> Date: Tue, 16 Apr 2002 09:41:13 +0300 (EEST)
> From: Jarkko.Moilanen@uta.fi
> Subject: RE: [xsl] count element content length
>
> Lainaus Jarno.Elovirta@nokia.com:
>
> > Heppa,
> >
> > > Is there some method to count the elements
> content length and when
> > > for example the 20th character is met, then it
> would stop showing
> > > the rest and put ... after that. Because of my
> lowsy english, here
> > > is one example:
> > >
> > > elements content:
> > > <Subject id="0000000002">Chattaamaan city
> chattiin ke klo 12</Subject>
> > >
> > > the result should be:
> > > <p>Chattaamaan city cha...</p>
> >
> > <xsl:template match="Subject">
> > <p>
> > <xsl:value-of select="concat(substring(., 1,
> 20),'...')" />
> > </p>
> > </xsl:template>
> >
> > But you might want to consider breaking the string
> at word boundary
>
> You are right, but I am not at that level yet =)
> But hey! If I do like Santtu suggested, the result
> is a bit wrong since
> it adds "..." also to elements that are shorter than
> 20 characters. What to do?
>
> Cheers Jarkko
>
> >
> > Cheers,
> >
> > Santtu
> >
> > XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
> >
> >
>
>
>
>
*******************************************************************
> Jarkko Moilanen *You are wise, witty, and
> wonderful, *
> Researcher/ ITCM *but you spend too much time
> *
> jarkko.moilanen@uta.fi *reading this sort of trash.
> *
> www.uta.fi/~jm60697 *
> *
> GSM: +358 50 3766 927 *
> *
>
*******************************************************************
> * ITCM Information Technology and Crisis Management
> *
>
*******************************************************************
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
> ------------------------------
>
> Date: Tue, 16 Apr 2002 15:01:32 +0800
> From: tanska@stats.st.com.sg
> Subject: [xsl] XML file not able to view on certain
> machines
>
> Able to view the same XML with the XSL on certain
> machines with Internet
> Explorer 6, but not able to view the XML with the
> XSL format on certain
> machines.
>
>
>
>
>
> [This e-mail is confidential and may also be
> privileged. If you are not the
> intended recipient, please delete it and notify us
> immediately; you should
> not copy or use it for any purpose, nor disclose its
> contents to any other
> person. Thank you.]
>
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
> ------------------------------
>
> Date: Tue, 16 Apr 2002 10:49:53 +0300
> From: Jarno.Elovirta@nokia.com
> Subject: RE: [xsl] count element content length
>
> Heppa,
>
>
=== message truncated ===
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list