중복 employeeNumber가있는 노드가 포함 된 XML 파일이 있습니다. 나는 첫 번째 기록 만 필요로한다. 같은 employeeNumber를 가진 두 번째 레코드를 어떻게 제거합니까? 어떤 도움이라도 대단히 감사합니다.xslt 2.0 중복 제거
샘플 XML 파일
<?xml version='1.0' encoding='UTF-8'?>
<cd:Report_Data xmlns:cd="urn:com.comday.report/INT007BOutbound">
<cd:Report_Entry>
<cd:displayName>Sarah Smith</cd:displayName>
<cd:employeeNumber>97061</cd:employeeNumber>
<cd:employeeType>CL</cd:employeeType>
<cd:CF_-_Current_employeeType>CL</cd:CF_-_Current_employeeType>
<cd:ont-startdate>20131018</cd:ont-startdate>
<cd:ont-enddate>20160301</cd:ont-enddate>
</cd:Report_Entry>
<cd:Report_Entry>
<cd:displayName>Danny Jones</cd:displayName>
<cd:employeeNumber>97062</cd:employeeNumber>
<cd:employeeType>EMP</cd:employeeType>
<cd:CF_-_Current_employeeType>EMP</cd:CF_-_Current_employeeType>
<cd:ont-startdate>20170501</cd:ont-startdate>
<cd:ont-enddate>20670501</cd:ont-enddate>
</cd:Report_Entry>
<cd:Report_Entry>
<cd:displayName>Danny Jones</cd:displayName>
<cd:employeeNumber>97062</cd:employeeNumber>
<cd:employeeType>CL</cd:employeeType>
<cd:CF_-_Current_employeeType>CL</cd:CF_-_Current_employeeType>
<cd:ont-startdate>20131112</cd:ont-startdate>
<cd:ont-enddate>20140620</cd:ont-enddate>
</cd:Report_Entry>
<cd:Report_Entry>
<cd:displayName>David Jenkins</cd:displayName>
<cd:employeeNumber>97063</cd:employeeNumber>
<cd:employeeType>EMP</cd:employeeType>
<cd:CF_-_Current_employeeType>EMP</cd:CF_-_Current_employeeType>
<cd:ont-startdate>20131118</cd:ont-startdate>
<cd:ont-enddate>20631118</cd:ont-enddate>
</cd:Report_Entry>
</cd:Report_Data>
샘플 XSL 파일
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:strip-space elements="*"/>
<xsl:output indent="no" method="text"/>
<xsl:template match="cd:Report_Data" xmlns:cd="urn:com.comday.report/INT007BOutbound">
<!--These are just text column headers for output-->
<xsl:text>displayName,employeeNumber,employeeType</xsl:text>
<xsl:call-template name="insertNewLine"/>
<xsl:for-each select="cd:Report_Entry">
<xsl:variable name="date">
<xsl:value-of select="format-date(current-date(),'[Y0001][M01][D01]')"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$date < cd:ont-startdate or cd:ont-enddate < $date">
<xsl:value-of select="replace(cd:displayName,',',' ')"/>
<xsl:call-template name="insertDelimiter"/>
<xsl:value-of select="cd:employeeNumber"/>
<xsl:call-template name="insertDelimiter"/>
<xsl:value-of select="cd:employeeType"/>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="cd:ont-startdate <= $date and $date <= cd:ont-enddate">
<xsl:value-of select="replace(cd:displayName,',',' ')"/>
<xsl:call-template name="insertDelimiter"/>
<xsl:value-of select="cd:employeeNumber"/>
<xsl:call-template name="insertDelimiter"/>
<xsl:value-of select="cd:CF_-_Current_employeeType"/>
</xsl:when>
</xsl:choose>
<xsl:call-template name="insertNewLine"/>
</xsl:for-each>
</xsl:template>
<!--****************************************-->
<!-- Starting function library section here -->
<xsl:template name="insertDelimiter">
<xsl:text>,</xsl:text>
</xsl:template>
<!--****************************************-->
<xsl:template name="insertNewLine">
<!-- Used to insert a new line into the XML output -->
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
'xsl : when'로직이 필요합니까, 아니면 중복 제거하려는 부분입니까? 또한 이것은 csv 로의 변환입니까? – Parfait