Re: [xsl] More XPath 1.0 Expression help

Subject: Re: [xsl] More XPath 1.0 Expression help
From: "Spencer Tickner" <spencertickner@xxxxxxxxx>
Date: Wed, 19 Jul 2006 13:45:24 -0800
Hi Todd,

I changed your xml a bit because the element key gets a little
confusing when using the key function. But at a glance running:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:key name="mykey" match="ukey" use="."/>
<xsl:template match="/">
<root>
	<xsl:apply-templates/>
</root>
</xsl:template>

<xsl:template match="ukey">
<xsl:if test="count(key('mykey', .)) > 1">
	<xsl:value-of select="."/> has duplicates<xsl:text>
	</xsl:text>
</xsl:if>
</xsl:template>

</xsl:stylesheet>

against:

<?xml version="1.0"?>
<dict>
	<ukey>Key1</ukey>
	<value/>
	<ukey>Key2</ukey>
	<value/>
	<ukey>Key3</ukey>
	<value/>
	<ukey>Key1</ukey>
	<value/>
</dict>


gives:


<?xml version='1.0' ?>
<root>
	Key1 has duplicates
	
	
	
	
	
	
	Key1 has duplicates
	
	
</root>


Hope that's close to what you're looking for


Spencer



On 7/19/06, Todd Ditchendorf <itod@xxxxxxxxx> wrote:

I need some help constructing an XPath to detect nodes containing duplicate string-values. I am currently restricted to XPath 1.0 syntax , so no access to distinct-values() or exslt unfortunately.

I have a document like this:

<dict>
<key>Key1</key>
<value/>
<key>Key2</key>
<value/>
<key>Key3</key>
<value/>
<key>Key1</key>
<value/>
</dict>

How do I create an XPath 1.0 expression to detect the <key> elements
with duplicate string-values?


Thanks!



Todd Ditchendorf Software Engineer itod@xxxxxxxxx

Current Thread