Return Distinct Records of XML

Flarajurimagx

New Member
I am completely new to XML and XLST. I have a report that spits out in XML. It has several thousand records but it's the same two rows of data being repeated over and over. I need a way to limit the output XML file to only those two unique rows of data. Here is an example of what my XML file currently looks like:\[code\]<zd:Report_Data xmlns:zd="urn:com.xxxx.report/xxxx-Employee_Status-Outbound"> <zd:Report_Entry><zd:empStat.emplStatusCode>A</zd:empStat.emplStatusCode><zd:empStat.name>Active Employee</zd:empStat.name><zd:worker><zd:empStat.lastUpdateDate>1/1/1968</zd:empStat.lastUpdateDate><zd:empStat.actvInd>1</zd:empStat.actvInd></zd:worker> </zd:Report_Entry> <zd:Report_Entry><zd:empStat.emplStatusCode>A</zd:empStat.emplStatusCode><zd:empStat.name>Active Employee</zd:empStat.name><zd:worker><zd:empStat.lastUpdateDate>1/1/1968</zd:empStat.lastUpdateDate><zd:empStat.actvInd>1</zd:empStat.actvInd></zd:worker> </zd:Report_Entry> <zd:Report_Entry><zd:empStat.emplStatusCode>A</zd:empStat.emplStatusCode><zd:empStat.name>Active Employee</zd:empStat.name><zd:worker><zd:empStat.lastUpdateDate>1/1/1968</zd:empStat.lastUpdateDate><zd:empStat.actvInd>0</zd:empStat.actvInd></zd:worker> </zd:Report_Entry> <zd:Report_Entry><zd:empStat.emplStatusCode>A</zd:empStat.emplStatusCode><zd:empStat.name>Active Employee</zd:empStat.name><zd:worker><zd:empStat.lastUpdateDate>1/1/1968</zd:empStat.lastUpdateDate><zd:empStat.actvInd>0</zd:empStat.actvInd></zd:worker> </zd:Report_Entry> </zd:Report_Data>\[/code\]This is what I would like it to look like:\[code\]<zd:Report_Data xmlns:zd="urn:com.xxxx.report/xxxx-Employee_Status-Outbound"> <zd:Report_Entry><zd:empStat.emplStatusCode>A</zd:empStat.emplStatusCode><zd:empStat.name>Active Employee</zd:empStat.name><zd:worker><zd:empStat.lastUpdateDate>1/1/1968</zd:empStat.lastUpdateDate><zd:empStat.actvInd>1</zd:empStat.actvInd></zd:worker> </zd:Report_Entry> <zd:Report_Entry><zd:empStat.emplStatusCode>A</zd:empStat.emplStatusCode><zd:empStat.name>Active Employee</zd:empStat.name><zd:worker><zd:empStat.lastUpdateDate>1/1/1968</zd:empStat.lastUpdateDate><zd:empStat.actvInd>0</zd:empStat.actvInd></zd:worker> </zd:Report_Entry> </zd:Report_Data>\[/code\]^^updatedI saw something that I thought would work on this site (http://stackoverflow.com/questions/3016929/selecting-unique-records-in-xslt-xpath) but am having trouble applying it to my situation. Any help would be greatly appreciated!This is what I have so far based on another post I read here. Unfortunately it's not returning any data:\[code\]<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:key name="kItemBy3Children" match="Report_Entry" use="concat(empStat.emplStatusCode, '+', empStat.name, '+', empStat.lastUpdateDate, '+', empStat.actvInd)"/> <xsl:template match="/"> <xsl:copy-of select= "*/item[generate-id() = generate-id(key('kItemBy4Children', concat(empStat.emplStatusCode, '+', empStat.name, '+', empStat.lastUpdateDate, '+', empStat.actvInd) ) ) ] "/> </xsl:template></xsl:stylesheet>\[/code\]
 
Back
Top