Sign Up
Search
Options
search
Chat
Help
News
Log in
Not Logged in
Home
»
Boards
»
Stylus Studio Developer Network
»
Stylus Studio Technical Forum
»
Grouping
Conferences
Stylus Studio Feature Requests
(1192)
Stylus Studio Technical Forum
(14621)
Stylus Studio - Registrar en o...
(1)
Stylus Studio - Registrar en o...
(2)
Can a pipeline send a file by ...
(2)
After Updateing WIN10 to WIN11...
(12)
Where do I add the custom java...
(3)
Where is the Diagram tab?
(5)
Applying XSLT to Word DOCX/XML
(2)
CSV conversion via ConvertToXM...
(1)
Text symbols in SS not same as...
(4)
Exposing xquery as webservice ...
(6)
Syntax Identifier
(2)
Saving a Converted XML as an X...
(5)
Output document cannot be pars...
(4)
Archiving output from conversi...
(1)
EDIFACT guideline from Stylus ...
(3)
CSV file putting all the data ...
(5)
Can't install Home version 64b...
(5)
presale - Can I covers this sc...
(5)
Problem with UNB
(5)
Splitting EDIFACT files pipeli...
(4)
[1-20]
[21-40]
[41-60]
Next
Website Feedback
(249)
XSLT Help and Discussion
(7625)
XQuery Help and Discussion
(2017)
Stylus Studio FAQs
(159)
Stylus Studio Code Samples & Utilities
(364)
Stylus Studio Announcements
(113)
Topic
next
Subject:
Grouping
Author:
Chandra Sekhar
Date:
18 Dec 2019 08:33 PM
Hi,
I have xml file like
<Record>
<Header>
<Header>
<Header>
<LineItem>
<LindItem>
<LineItem>
<LineItem>
<Lot>
<Lot>
<Lot>
<Lot>
<Lot>
</Record>
Header,LineItem.Lot are different structures which has common key field as order number.. I want group by Order number like
<Record>
<Header>
<LineItem>
<Lot>
</Record>
HOW CAN we achieve this in XSLT.
Appreciate your Help.
Thanks,
CS
Source(6).xml
Source XML
top
Subject:
Grouping
Author:
(Deleted User)
Date:
14 Jan 2020 11:32 AM
Hi
If you use XSLT 2, you could do something like this:
<xsl:stylesheet xmlns:xsl="
http://www.w3.org/1999/XSL/Transform"
version="2.0" xmlns:ns0="
http://sap.com/xi/XI/SplitAndMerge">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:for-each-group select="ns0:Messages/ns0:Message1" group-by="messages/Lot_Line/Ordernumber">
<Record>
<!--<Ordernumber>
<xsl:value-of select="current-grouping-key()"/>
</Ordernumber>-->
<!--header-->
<xsl:apply-templates select="messages/Header[Ordernumber = current-grouping-key()]"/>
<xsl:apply-templates select="messages/Lineitem[Ordernumber = current-grouping-key()]"/>
<xsl:apply-templates select="messages/Lot_Line[Ordernumber = current-grouping-key()]"/>
</Record>
</xsl:for-each-group>
</xsl:template>
<!--changes the root for Lot_line-->
<xsl:template match="Lot_Line">
<Lot>
<xsl:apply-templates/>
</Lot>
</xsl:template>
<xsl:template match="@*|*|processing-instruction()|comment()">
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|processing-instruction()|comment()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Kind regards Bruce
Powered by
Stylus Studio
, the world's leading
XML IDE
for
XML
,
XSLT
,
XQuery
,
XML Schema
,
DTD
,
XPath
,
WSDL
,
XHTML
,
SQL/XML
, and
XML Mapping
!
Go to Conference:
Select Conference
Stylus Studio Feature Requests
Stylus Studio Technical Forum
Website Feedback
XSLT Help and Discussion
XQuery Help and Discussion
Stylus Studio FAQs
Stylus Studio Code Samples & Utilities
Stylus Studio Announcements
go
Log In Options
Username:
Password:
Site Map
|
Privacy Policy
|
Terms of Use
|
Trademarks
Stylus Scoop XML Newsletter:
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.