This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
How do I compare all similar type nodes?
- From: "Ahmad J Reeves" <ahmad at dcs dot qmul dot ac dot uk>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 17 Dec 2001 23:04:36 -0000
- Subject: [xsl] How do I compare all similar type nodes?
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
I am trying to remove duplicate copies of context nodes from a sorted
list. My xml doc looks like this:-
<LOG>
<DIRECT>
<COMMUNICATION_TYPE> PAGETELL </COMMUNICATION_TYPE>
<Invoc_serial> 27 </Invoc_serial>
<Serial> 3087908 </Serial>
<USAGE> TELL </USAGE>
<MESSAGE_TYPE> EMOTE </MESSAGE_TYPE>
<CHARACTER_ID> 44639 </CHARACTER_ID>
<CHARACTER_STATUS> 3 </CHARACTER_STATUS>
<LOCATION_ID> 45040 </LOCATION_ID>
<TARGET_CHARACTER_ID> 2346456 </TARGET_CHARACTER_ID>
<TARGET_CHARACTER_STATUS> 6 </TARGET_CHARACTER_STATUS>
<TARGET_CHARACTER_LOCATION_ID> 23222
</TARGET_CHARACTER_LOCATION_ID>
<MESSAGE>hello</MESSAGE>
<TIME> 'Mon, 26 Nov 2001 15:40:29 +0000' </TIME>
</DIRECT>
*then a few hundred more like that*
</LOG>
My revised xml stylesheet as is looks like this:-(thanks chris)
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html"/>
<xsl:template match ="/">
<html>
<body>
<xsl:for-each select="LOG/DIRECT/TARGET_CHARACTER_ID[. !=
preceding-sibling::TARGET_CHARACTER_ID]">
<xsl:sort select="." data-type="number"
order="ascending" />
<xsl:value-of select="position()" /><xsl:value-of
select="." />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
The output still includes duplicates from the sorted list. I think preceding
sibling doesnt compare all target_character_id nodes against eachother,
how can I do this to prevent prinitng out duplicates?
Cheers
Ahmad
1. 23220
2. 23470
3. 23470
4. 23470
5. 23470
6. 23470
7. 23470
8. 83470
9. 212120
10. 223232
11. 231212
12. 2346456
13. 27675340
Cheers
Ahmad.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list