On 3/28/06, Andrew Smith <andrew(_dot_)smith(_at_)itility(_dot_)co(_dot_)uk>
wrote:
Hi,
I have an XML structure passed to me and I want to perform to different
node restrictions on the tree.
<root>
<a>
<b>GUID1</b>
<c>one</c>
<d>
<e>A1</e>
</d>
</a>
<a>
<b>GUID1</b>
<c>one</c>
<d>
<e>A1</e>
</d>
</a>
<a>
<b>GUID2</b>
<c>one</c>
<d>
<e>A1</e>
</d>
</a>
</root>
<xsl:apply-templates select="/root/a[d[starts-with(e, 'A')]]" />
I currently have something like that, however, I also want to remove
duplicate nodes
<xsl:apply-templates select="/root/a[d[starts-with(e, 'A')]] and
a[not(b=following::a/b)]" />
That however doesn't work. Is there anyway this can be done? If so could
someone point me in the right direction.
Just drop the 'and' and use two predicates together:
/root/a[d[starts-with(e, 'A')]][not(b=following-sibling::a/b)]
The second predicate will operate on the results of applying the first
predicate.
If performance is important, you would be better off using keys to
remove duplicates.
cheers
andrew
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--