[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Grouping elements in xslt 1.0
I am using xslt 1.0. Input xml (simplified version): <?xml version="1.0" encoding="utf-8"?> <ASBMessage id="id" version="version" timestamp="timestamp"> <Body items="items"> <AccountData operation="operation"> <Account> <ID value="value" namespace="namespace"/> <ID value="value" namespace="namespace"/> <Type id="id"/> </Account> </AccountData> </Body> </ASBMessage> Expected output: <?xml version="1.0" encoding="utf-8"?> <data> <o t="TVEQE_ASBMessage"> <a n="id"> <v s="id"/> </a> <a n="timestamp"> <v s="timestamp"/> </a> <a n="version"> <v s="version"/> </a> <a n="TVEQE_Body"> <o t="TVEQE_Body"> <a n="items"> <v s="items"/> </a> <a n="TVEQE_AccountData"> <o t="TVEQE_AccountData"> <a n="operation"> <v s="operation"/> </a> <a n="TVEQE_Account"> <o t="TVEQE_Account"> <a n="TVEQE_ID"> <o t="TVEQE_ID"> <a n="namespace"> <v s="namespace"/> </a> <a n="value"> <v s="value"/> </a> </o> <o t="TVEQE_ID"> <a n="namespace"> <v s="namespace"/> </a> <a n="value"> <v s="value"/> </a> </o> </a> <a n="TVEQE_Type"> <o t="TVEQE_Type"> <a n="id"> <v s="id"/> </a> </o> </a> </o> </a> </o> </a> </o> </a> </o> </data> My xslt below does not generate the expected output for similar element which appeared more than once. <xsl:template match="/ASBMessage"> <data> <o t="TVEQE_{name(.)}"> <xsl:for-each select="@*"> <a n="{name(.)}"><v s="{.}"></v></a> </xsl:for-each> <xsl:apply-templates/> </o> </data> </xsl:template> <xsl:template match="*"> <a n="TVEQE_{name(.)}"> <o t="TVEQE_{name(.)}"> <xsl:for-each select="@*"> <a n="{name(.)}"><v s="{.}"></v></a> </xsl:for-each> <xsl:apply-templates/> </o> </a> </xsl:template> For example, for <ID> element which appeared twice, it generated, <a n="TVEQE_ID"> <o t="TVEQE_ID"> <a n="namespace"> <v s="namespace"/> </a> <a n="value"> <v s="value"/> </a> </o> </a> <a n="TVEQE_ID"> <o t="TVEQE_ID"> <a n="namespace"> <v s="namespace"/> </a> <a n="value"> <v s="value"/> </a> </o> </a> The expected output is to have both ID element encapsulated in single <a></a> element. Any help is appreciated. Thanks.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|