Subject: RE: [xsl] Outputing a node whose value appears only once From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 19 Jul 2005 06:29:55 +0100 |
I fear this is one of those threads where every time your question is answered, you will change the question... perhaps you could tell us what you are *really* trying to do. You can find a value that is in a but not in c by a small modification to the previous example: <xsl:key name="gk" match="c/*" use="."/> and testing a node <xsl:template match="a/*"> <xsl:if test="not(key('gk', .))"> The value is in a but not in c </xsl:if> </xsl:template> and conversely, mutatis mutandis. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Jonathan Marenus [mailto:jonathanmarenus@xxxxxxxxx] > Sent: 19 July 2005 06:06 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: RE: [xsl] Outputing a node whose value appears only once > > > Ok, I kind of got your point thus far. In my example, > I had two parents, 'a' and 'c'. How would I go about > outputing what is in 'a' and not 'c' separately from > outputing what is in 'c' but not 'a'. In other words, > I want to run my XSL to account for both the unique > values in 'a' as well as the unique values in 'c'. > > --- Michael Kay <mike@xxxxxxxxxxxx> wrote: > > > Read about Muenchian grouping at > > http://www.jenitennison.com/xslt/grouping. > > You can use the same idea to test whether a value is > > unique within the file > > (a member of a group of one) by defining the > > grouping key > > > > <xsl:key name="gk" match="b|bb|bbb" use="."/> > > > > and testing a node > > > > <xsl:template match="b|bb|bbb"> > > <xsl:if test="not(key('gk', .)[2])"> > > The value is unique > > </xsl:if> > > </xsl:template> > > > > Michael Kay > > http://www.saxonica.com/ > > > > > > > -----Original Message----- > > > From: Jonathan Marenus > > [mailto:jonathanmarenus@xxxxxxxxx] > > > Sent: 18 July 2005 23:35 > > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > Subject: [xsl] Outputing a node whose value > > appears only once > > > > > > > > > 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Outputing a node whose va, Jonathan Marenus | Thread | RE: [xsl] Outputing a node whose va, Mukul Gandhi |
RE: [xsl] Outputing a node whose va, Jonathan Marenus | Date | Re: [xsl] Process Children Before P, Adam J Knight |
Month |