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

Re: Processing an element only if there are no better

Subject: Re: Processing an element only if there are no better optio ns
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Thu, 22 May 2003 07:14:36 +0200
type1 type2
Use:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output omit-xml-declaration="yes"/>

  <xsl:param name="pPrefs">
    <pref>Media Release</pref>
    <pref>Assessment</pref>
    <pref>Reaction</pref>
    <pref>Citation</pref>
  </xsl:param>

  <xsl:variable name="vPrefs"
  select="document('')/*/xsl:param[@name='pPrefs']"/>

  <xsl:template match="ProductGroup">
    <xsl:for-each select="Product">
      <xsl:sort select="count($vPrefs/pref[current()/@Type =
.]/preceding-sibling::*)"
                data-type="number"/>
      <xsl:if test="position() = 1">
        <xsl:copy-of select="."/>
      </xsl:if>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

When this is applied on the following source.xml:

<ProductGroup>
  <Product Type="Assessment">Some Assessment</Product>
  <Product Type="Reaction">Some Reaction</Product>
  <Product Type="Media Release">Some Media Release</Product>
</ProductGroup>

the wanted result is produced:

<Product Type="Media Release">Some Media Release</Product>


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

"Dustin, Dave" <Dave.Dustin@xxxxxxxxxx> wrote in message
news:2124ED9D3EF87D40B223B489CC93A94D9CC554@xxxxxxxxxxxxxxxxxxxxx
> Thanks Juergen,
>
> Problem is that Type1 is not what the actual value is.  The possible
values
> are (in the order of preference)
>
> Media Release
> Assessment
> Reaction
> Citation
>
> Problem is, the system that generates the XML will spit these out in a
> random order, so I can't rely on the one I want to appear first, nor can I
> sort them due to the text order.
>
>
> Dave
>
>
> -----Original Message-----
> From: Zink, Juergen [mailto:Juergen.Zink@xxxxxxxxxxxxxxxxxxxx]
> Sent: Thursday, 22 May 2003 4:09 p.m.
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: AW:  Processing an element only if there are no better optio
> ns
> Importance: Low
>
>
> Hi Dave,
>
> <snip>
>
> ><ProductGroup>
> > <Product Type="Type1">[...]</Product>
> > <Product Type="Type2">[...]</Product>
> > <Product Type="Type3">[...]</Product>
> ></ProductGroup>
> >
> >What I need to do is only extract the contents of _1_ Product in an
> >order
> of
> >preference.
> >
> >i.e. If there is a Type1 product, then don't output Type2 or Type3.
> >However, if there is no Type1, then output Type2, but not Type3 if it's
> >present.
>
> Inside a template use: select="/ProductGroup/Product[1]".
> Selecting the first product in document order.
>
> Please,
>
> Juergen
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


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.