xslt - how to sort elements and group them based on unique element or ID, which has namespace -


i have asked same question not namespace

i have xml like..this

 <?xml version = '1.0' encoding = 'utf-8'?> <finaldbgetuserid>   <finaldbgetuseridoutputcollection xmlns:ns0="http://xmlns.oracle.com/pcbpel/adapter/db/finaldbgetuserid"                                     xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/finaldbgetuserid">     <ns0:userubscribers>       <ns0:user_id>237</ns0:user_id>       <ns0:businessentity>         <ns0:nevada_business_id>nv0511201114</ns0:nevada_business_id>         <ns0:business_entity_id>207</ns0:business_entity_id>       </ns0:businessentity>     </ns0:userubscribers>     <ns0:userubscribers>       <ns0:user_id>237</ns0:user_id>       <ns0:businessentity>         <ns0:nevada_business_id>nv0511201119</ns0:nevada_business_id>         <ns0:business_entity_id>212</ns0:business_entity_id>       </ns0:businessentity>     </ns0:userubscribers>     <ns0:userubscribers>       <ns0:user_id>237</ns0:user_id>       <ns0:businessentity>         <ns0:nevada_business_id>nv0511201129</ns0:nevada_business_id>         <ns0:business_entity_id>230</ns0:business_entity_id>       </ns0:businessentity>     </ns0:userubscribers>   </finaldbgetuseridoutputcollection> </finaldbgetuserid> 

output should like

 <finaldbgetuserid>   <finaldbgetuseridoutputcollection xmlns:ns0="http://xmlns.oracle.com/pcbpel/adapter/db/finaldbgetuserid"                                     xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/finaldbgetuserid">     <ns0:userubscribers>       <ns0:user_id>237</ns0:user_id>       <ns0:businessentity>         <ns0:nevada_business_id>nv0511201114</ns0:nevada_business_id>         <ns0:business_entity_id>207</ns0:business_entity_id>       </ns0:businessentity>       <ns0:businessentity>         <ns0:nevada_business_id>nv0511201119</ns0:nevada_business_id>         <ns0:business_entity_id>212</ns0:business_entity_id>       </ns0:businessentity>       <ns0:businessentity>         <ns0:nevada_business_id>nv0511201129</ns0:nevada_business_id>         <ns0:business_entity_id>230</ns0:business_entity_id>       </ns0:businessentity>     </ns0:userubscribers>   </finaldbgetuseridoutputcollection> </finaldbgetuserid> 

following below xslt, trying , not getting desired result

 <xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/xsl/transform">  <xsl:output omit-xml-declaration="yes" indent="yes"/>  <xsl:strip-space elements="*"/>   <xsl:key name="kuserid" match="userubscribers"  use="user_id"/>   <xsl:template match="node()|@*">      <xsl:copy>        <xsl:apply-templates select="node()|@*">          <xsl:sort select="user_id" data-type="number"/>        </xsl:apply-templates>      </xsl:copy>  </xsl:template>    <xsl:template match=  "userubscribers|user_id  |businessentity"/>   <xsl:template match=   "userubscribers     [generate-id()     =      generate-id(key('kuserid', user_id)[1])      ]">   <userubscribers>    <xsl:copy-of select="user_id"/>    <xsl:apply-templates mode="copy" select="key('kuserid',user_id)" />   </userubscribers>  </xsl:template>   <xsl:template match="userubscribers" mode="copy">   <businessentity>    <xsl:apply-templates/>   </businessentity>  </xsl:template> </xsl:stylesheet> 

i getting output same input , there no change. may doing mistake, not getting mistake .... trying find out

define xmlns:ns0="http://xmlns.oracle.com/pcbpel/adapter/db/finaldbgetuserid" on xsl:stylesheet element, use prefix ns0 anywhere in stylesheet match or select elements namespace e.g. <xsl:key name="kuserid" match="ns0:userubscribers" use="ns0:user_id"/> , <xsl:sort select="ns0:user_id" data-type="number"/>.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -