RE: [xsl] Outputing a node whose value appears only once

Subject: RE: [xsl] Outputing a node whose value appears only once
From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx>
Date: Mon, 18 Jul 2005 21:37:32 -0700 (PDT)
Thanks Mike and Ken. That was an oversight on my
part..

Regards,
Mukul

--- Michael Kay <mike@xxxxxxxxxxxx> wrote:

> The "|" operator forms the union of two node-sets. I
> suspect you meant to
> write "or", which combines two booleans. If the two
> operands are node-sets,
> and if the context expects a boolean, then "|" and
> "or" are interchangeable.
> In any other situation, they are quite different.
> 
> Michael Kay
> http://www.saxonica.com/ 
> 
> > -----Original Message-----
> > From: Mukul Gandhi [mailto:mukul_gandhi@xxxxxxxxx]
> 
> > Sent: 19 July 2005 05:00
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: Re: [xsl] Outputing a node whose value
> appears only once
> > 
> > I am trying to eliminate duplicates with the
> following
> > logic..
> > 
> > <?xml version="1.0"?> 
> > <xsl:stylesheet
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> > version="1.0">
> >  
> >  <xsl:output method="xml" indent="yes" /> 
> > 
> >  <xsl:template match="/root">
> >    <xsl:for-each select="(a/* | c/*)[not((. =
> > preceding-sibling::a) | (. = preceding-sibling::c)
> |
> > (. = following-sibling::a) | (. =
> > following-sibling::a))]">
> >      <xsl:value-of select="." />
> >    </xsl:for-each>
> >  </xsl:template>
> >  
> > </xsl:stylesheet>
> > 
> > Saxon 8.4 is giving error -
> > Error on line 7 of
> > file:/C:/xml/xsleg/xslt/example1.xsl:
> >   XPTY0004: Required item type of first operand of
> '|'
> > is node(); supplied value
> >  has item
> >   type xs:boolean
> > 
> > Whereas Xalan-J 2.6.0 gives following error -
> > Error at xsl:for-each on line 7 of
> > file:///C:/xml/xsleg/xslt/example1.xsl:
> >   The value is not a node-set
> > 
> > Can anyone tell where is the problem? And how I
> can
> > solve it?
> > 
> > Regards,
> > Mukul
> > 
> > --- Jonathan Marenus <jonathanmarenus@xxxxxxxxx>
> > wrote:
> > 
> > > 
> > > What I would like to do now is output a value
> that
> > > appears only once throughout the XML file. For
> > > example, if I have:
> > > 
> > > <a>
> > >    <b>value1</b>
> > >    <bb>value2</bb>
> > >    <bbb>value3</bbb>
> > > </a>
> > > <c>
> > >    <b>value1</b>
> > >    <bb>value2</bb>
> > >    <bbb>value4</bbb>
> > > </c>
> > > 
> > > From the point of view of 'a', I would want to
> > > output
> > > "value3" because 'a' contains it but 'c' does
> not. 
> > > This is assuming that the above is the entire
> file. 
> > > I
> > > also need to output a sibling of the node which
> does
> > > not appear more than once (like the value of a/b
> or
> > > a/bbb).  It is also assumed that multiple
> instances
> > > of
> > > the same value will have different parents. 
> This is
> > > shown in the example above.
> > > 
> > > Thanks for the help.
> > > 
> > > Jonathan
> > > 
> > >
> __________________________________________________
> > > Do You Yahoo!?
> > > Tired of spam?  Yahoo! Mail has the best spam
> > > protection around 
> > > http://mail.yahoo.com 
> > > 
> > > 
> > 
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam
> protection around 
> > http://mail.yahoo.com 
> 
> 



		
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 

Current Thread