XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Tom BoyceSubject: removing duplicates from xml wtih xslt
Author: Tom Boyce
Date: 16 Jul 2013 07:39 PM
I have a need to remove duplicate values in repeating nodes. I've found several examples around the web and studied them enough to try them in my project. When I do, I get the error: XTSE0010: An xsl:template element must not contain an xsl:key element. I'm uploading the source and xslt that's giving this error.

I feel pretty confident I've recreated the example properly. I'm not sure if this is a code problem or maybe some quirk with SS 2011. I"ve specified 1.0 and the example is for this version.

Thanks in advance for any help.


UnknownVendor_Generic_XML.XML
Source xml

UnknownVendor_Generic_XML(1).XML
xslt file

Postnext
Ivan PedruzziSubject: removing duplicates from xml wtih xslt
Author: Ivan Pedruzzi
Date: 17 Jul 2013 01:02 PM
Tom

You have attached the input document twice but the XSLT is missing.

The error reported by Saxon seems to be pretty clear.

Are you sure that xsl:key is defined as direct child of xsl:stylesheet?


Ivan Pedruzzi
Stylus Studio Team

Postnext
Tom BoyceSubject: removing duplicates from xml wtih xslt
Author: Tom Boyce
Date: 17 Jul 2013 01:08 PM
I believe I did. sorry about the posting error, let me post the xslt


UnknownRemoveDups_Generic.xsl

Postnext
Ivan PedruzziSubject: removing duplicates from xml wtih xslt
Author: Ivan Pedruzzi
Date: 17 Jul 2013 03:19 PM

I am not sure what you are trying to output but the XSLT contains several errors

1) on line 5 you have declared xsl:key under xsl:template, and as mentioned in previous post this shoudl be udenr xsl:stylesheet

2) the identity template tries to copy attribute after generating text nodes

3) xsl:copy should wrap all template body


Attached here you can find a syntactically correct version which does not mean that its output is what you want. but this is a far as we can go without seeing the desired result


Ivan Pedruzzi
Stylus Studio Team


DocumentRemoveDups_Generic_ivan.xsl

Postnext
Tom BoyceSubject: removing duplicates from xml wtih xslt
Author: Tom Boyce
Date: 17 Jul 2013 03:22 PM
I don't see the attachment.

Postnext
Tom BoyceSubject: removing duplicates from xml wtih xslt
Author: Tom Boyce
Date: 17 Jul 2013 03:22 PM
see it now

Postnext
Tom BoyceSubject: removing duplicates from xml wtih xslt
Author: Tom Boyce
Date: 17 Jul 2013 03:41 PM
Thanks for your response. I'm not very practiced at xslt so please be patient.

ok, when I run the changes you make I now get the error: SXXP0003: Error reported by XML parser: Content is not allowed in prolog.

at com.exln.stylus.CSaxon8Driver.doProcessing(CSaxon8Driver.java:281)
at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:104)
Vendor_Generic_XML.XML (1, 1)

This is line 1
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://www.ibm.com/maximo">

I have to have this line in there.
when I run just the generic line for stylesheet i get this error:

SXXP0003: Error reported by XML parser: The prefix "xsl" for element "xsl:stylesheet" is not bound.

at com.exln.stylus.CSaxon8Driver.doProcessing(CSaxon8Driver.java:269)
at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:104)


what I am trying to output is an xml file exactly like the input xml except with the duplicate values for the nodes under ABCD_COMPCODE elenent.

As an example in the original xml you have these elements/values where
<ABCD_COMPANYCODE>1223</ABCD_COMPANYCODE>
<ABCD_COMPANYNAME>ABCD Productions</ABCD_COMPANYNAME>

occur more than once. I want the duplicate nodes to be removed:

<ABCD_COMPCODE>
<ABCD_COMPANYCODE>1223</ABCD_COMPANYCODE>
<ABCD_COMPANYNAME>ABCD Productions Inc</ABCD_COMPANYNAME>
</ABCD_COMPCODE>
<ABCD_COMPCODE>
<ABCD_COMPANYCODE>1224</ABCD_COMPANYCODE>
<ABCD_COMPANYNAME>ABCD Regional TV Inc</ABCD_COMPANYNAME>
</ABCD_COMPCODE>
<ABCD_COMPCODE>
<ABCD_COMPANYCODE>1223</ABCD_COMPANYCODE>
<ABCD_COMPANYNAME>ABCD Productions Inc</ABCD_COMPANYNAME>
</ABCD_COMPCODE>
<ABCD_COMPCODE>
<ABCD_COMPANYCODE>1223</ABCD_COMPANYCODE>
<ABCD_COMPANYNAME>ABCD Productions Inc</ABCD_COMPANYNAME>
</ABCD_COMPCODE>

Posttop
Ivan PedruzziSubject: removing duplicates from xml wtih xslt
Author: Ivan Pedruzzi
Date: 17 Jul 2013 08:47 PM
The input document had an extra character at the start of the file which made it not well formed

See solution attached



Ivan Pedruzzi
Stylus Studio Team


DocumentVendor_Generic_XML_1.XML


UnknownRemoveDups_Generic_ivan(1).xsl

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.