on 01-20-2020 1:05 PM
Hi All,
I have a small required in which I need to count how many times the user exists in the payload, am using the XSLT but still, it is not is overcoming the output.
XML:
<?xml version="1.0"?> <Request> <Request> <RequestUNav> <RequestUData> <businessUnit/> <isEffectiveDateType>false</isEffectiveDateType> <actionType></actionType> <isAssigned>false</isAssigned> <UserId>UserTest</UserId> <effectiveDate/> <subjectUserName>Testing 123</subjectUserName> </RequestUData> </RequestUNav> </Request> <Request> <RequestUNav> <RequestUData> <businessUnit/> <isEffectiveDateType>false</isEffectiveDateType> <actionType></actionType> <isAssigned>false</isAssigned> <UserId>UserTest</UserId> <effectiveDate/> <subjectUserName>123</subjectUserName> </RequestUData> </RequestUNav> </Request> <Request> <RequestUNav> <RequestUData> <businessUnit/> <isEffectiveDateType>false</isEffectiveDateType> <actionType></actionType> <isAssigned>false</isAssigned> <UserId>Test</UserId> <effectiveDate/> <subjectUserName>1234</subjectUserName> </RequestUData> </RequestUNav> </Request> </Request>
XSLT code:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/">UserId-- <xsl:value-of select= "count(/*/*/list/RequestUIData[contains(., 'UserId')]) "/> </xsl:template> </xsl:stylesheet>
Expected Output:
<?xml version="1.0" encoding="UTF-8"?><Response><UserId>UserTest</UserId><Reflect>2</Reflect><UserId>Test</UserId><Reflect>1</Reflect></Response>
Regards,
Sandhya
Hi Sandhya
This is easy to do in XSLT from version 2. Have a look at this stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<Response>
<xsl:for-each-group select="/Request/Request/RequestUNav/RequestUData" group-by="UserId">
<UserId>
<xsl:value-of select="current-grouping-key()"/>
</UserId>
<Reflect>
<xsl:value-of select="count(current-group())"/>
</Reflect>
</xsl:for-each-group>
</Response>
</xsl:template>
</xsl:stylesheet>
Kind regards,
Morten
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi 7a519509aed84a2c9e6f627841825b5a,
I have updated the XML sorry it was a mistaken.
Regards,
Sandhya
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.