Input
<varForCSVComplexType>
<IndActivityPayload xmlns="http://www.example.org">
<PlannedFinishDate/>
<AttachmentLoc>406,405,401</AttachmentLoc>
<reviewerApproval/>
<reviewerComments/>
</IndActivityPayload>
</varForCSVComplexType>
Required Output
<ArrayOfUCMDocIds
xmlns:ns0="http://www.example.org" xmlns="http://www.example.org">
<ns0:indDocId>406</ns0:indDocId>
<ns0:indDocId>405</ns0:indDocId>
<ns0:indDocId>401</ns0:indDocId>
</ArrayOfUCMDocIds
XSLT : Kind of recurrent call till there are no comma(',')
<xsl:stylesheet
version="1.0"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="http://www.example.org"
xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:med="http://schemas.oracle.com/mediator/xpath"
xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions"
xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:bpmn="http://schemas.oracle.com/bpm/xpath"
xmlns:ora="http://schemas.oracle.com/xpath/extension"
xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator"
xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
exclude-result-prefixes="xsi xsl ns0 xsd bpws xp20 mhdr bpel oraext
dvm hwf med ids bpm xdk xref bpmn ora socket ldap">
<xsl:strip-space
elements="*"/>
<xsl:template
match="/ns0:IndActivityPayload/ns0:AttachmentLoc">
<ns0:IndActivityPayload>
<xsl:apply-templates/>
</ns0:IndActivityPayload>
</xsl:template>
<xsl:template match="text()"
name="split">
<xsl:param name="pText"
select="."/>
<xsl:param
name="pItemElementName" select="'ns0:AttachmentLoc'"/>
<xsl:if test="string-length($pText)
> 0">
<!-- Below declaration basically concatenates a ',' to the value just in case we have only one element and if there is no comma, then the value just returns nothing -->
<xsl:variable
name="vNextItem" select="substring-before(concat($pText, ','),
',')"/>
<ns0:indDocId>
<xsl:value-of
select="$vNextItem"/>
</ns0:indDocId>
<xsl:call-template
name="split">
<xsl:with-param
name="pText" select="substring-after($pText, ',')"/>
<xsl:with-param
name="pItemElementName" select="$pItemElementName"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
No comments:
Post a Comment