[xsl] Re: UNIQUE List of nodes attributes that have a particular value

Subject: [xsl] Re: UNIQUE List of nodes attributes that have a particular value
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Sun, 20 Apr 2003 13:31:34 +0200
A single XPath 1.0 expression selecting what you want is not possible in the
general case.

However, if every element has a single attribute and if the elements are
sorted by the names of their attributes, then the following expressions do
what you need:

/*/*/@*[. = 'foo'][not(name() = name(../preceding-sibling::*[@*=
'foo'][1]/@*))]

selects

  <NodeA name="foo"/>
  <NodeB author="foo"/>
  <NodeC reporter="foo"/>


and

/*/*/@*[. = 'larry'][not(name() = name(../preceding-sibling::*[@*=
'larry'][1]/@*))]

selects

  <NodeA name="larry"/>
  <NodeB author="larry"/>



=====
Cheers,

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


"Larry Hayashi" <larry_hayashi@xxxxxxxxxxx> wrote in message
news:Law15-F28cvIhkeTxtf00001e0c@xxxxxxxxxxxxxx
> I am trying to find all the attributes in an XML document that contain a
> particular value.
>
> Given the following data...
>
> <ExampleData>
> <NodeA name="foo"/>
> <NodeA name="larry"/>
> <NodeA name="foo"/>
> <NodeB author="foo"/>
> <NodeB author="larry"/>
> <NodeC reporter="foo"/>
> </ExampleData>
>
> I would like to write an XPATH statement that returns this:
>
> <NodeA name="foo"/>
> <NodeB author="foo"/>
> <NodeC reporter="foo"/>
>
> Note that I am only returning UNIQUE instances of element/attribute
> combinations with the attribute value.
>
> Is this possible using XPATH?
>
> Thanks!
>
> Larry
>
> _________________________________________________________________
> Help STOP SPAM with the new MSN 8 and get 2 months FREE*
> http://join.msn.com/?page=features/junkmail
>
>
>  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