XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
+ Stylus Studio Technical Forum (14621)
+ Website Feedback (249)
- XSLT Help and Discussion (7625)
-> + How to change XSLT parameter s... (3)
-> + how to change format of the da... (2)
-> + Search "Next 8 Results " doesn... (2)
-> - Support for Git (1)
-> + newbee (8)
-> + How to substitute element or t... (2)
-> + Xalan support in x16? (2)
-> + The context item for axis step... (5)
-> - ASP to XSL (1)
-> + xsl report, with xml feed, SVG... (7)
-> + XSLT code to transform CSV typ... (2)
-> + Make xstl file working in brow... (4)
-> + identity template, result-docu... (6)
-> - identity template and xsl:resu... (1)
-> + java.lang.RuntimeException: Er... (5)
-> + How to check matching parenthe... (2)
-> - Error only on using xalan:eval... (1)
-> + XSLT not displaying SOAP respo... (2)
-> + How do i delete the node from ... (2)
-> + How to break xslt lines to mak... (4)
-> - Marge node using attribute val... (1)
-> - Replce utf to unicode using xs... (1)
-> - getting different instances of... (1)
-> + XML to Flat (4)
-> + non breaking space   in e... (2)
-> - How can i attach a empty names... (1)
-> + Cannot find a matching 1-argum... (7)
-> - get value from different docum... (1)
-> + How can I change the XML heade... (2)
-> + Stylus Studio and Datapower (9)
-> + Generate XML form a XSD (2)
-> + There is no way to run xslt tr... (3)
-> + XML-Source NS is copied into t... (3)
-> + new guy attempting xslt (2)
-> + XML 2011 question (7)
-> + Manipulating XML with external... (2)
-> + removing duplicates from xml w... (8)
-> + Wnat to use presence of tag t... (2)
-> + modifing Andrew Welch's csv 2 ... (5)
-> + Can't use (or see) XSLT or WYS... (3)
-> + Delete the xsi:nil attribute ... (2)
-> + FOTY0012: Cannot get the typed... (20)
-> + XSLT Mapper - Two way xslt map... (2)
-> + EDI (5)
-> + XSL Test for lack of XML eleme... (4)
-> + Trouble Calling a java functio... (4)
-> + How to generate EDI 997 (2)
-> + followup on tokenize with /r (5)
-> + tokenize a string with \r (4)
-> + How to convert XML to XLS file... (2)
-> - How to convert XML to XLS file... (1)
-> + how to pass value to xsl for t... (3)
-> + entity expansion liimit exceed... (4)
-> + Creating XSLT Stylesheet (2)
-> + Create XSLT from XSD (2)
-> + How to remove nodes from xml b... (4)
-> + Highlighting text in XSL file (4)
-> - XSLT to Excel, predefine cell ... (1)
-> + CSaxon8Driver issue...time out (2)
-> + Is it possible to generate a X... (2)
-> + Is there any tool which genera... (2)
-> + xslt to html producing double ... (2)
-> - ADD 2 XML 2 Generate Single XM... (1)
-> + converting XML1 to XML2 struct... (2)
-> + How to remove the name space i... (2)
-> + Dump Payload into String (4)
-> + Converting Global EDIFACT into... (2)
-> + Auto mapping of XSLT? (3)
-> + Numbering a list broken into m... (3)
-> + help in xsl:analyze-string (2)
-> + Use XSLT with SOAP (2)
-> + Order of Processing Child Elem... (2)
-> + XSL finding a node based on va... (2)
-> + grouping a group? (11)
-> + Query on Looping (5)
-> + java.lang.Assertionerror_: Slo... (7)
-> + CONVERT SQL Server data to XML... (11)
-> + Error using "xsltproc" command... (3)
-> + XML refresh via web broswer (3)
-> + XSL-mapping usage for csv file... (4)
-> + form controls with xslt (2)
-> + Stylus Studio 2011 XML Enterpr... (2)
-> + Looping through Itema and gett... (2)
-> + Image src through System Varia... (3)
-> + XSL-mapping usage for csv file... (3)
-> + How to achieve UTF-8 encoding ... (2)
-> + sorting Using JavaScript (6)
-> + Display values from .xml horiz... (5)
-> + query on xslt for-each (3)
-> + query on xslt for-each (2)
-> + issue for First occurance (2)
-> + XSL: Mapping 2 XSD to 1 XSD (2)
-> + xslt mapper looses linkage fro... (2)
-> - How to Modify only few nodes a... (1)
-> + XSLT autocomplete function (2)
-> + i need to display dynamic list... (2)
-> - How to group when source has m... (11)
-> ->How to group when source ...
-> ->How to group when source ...
-> ->How to group when source ...
-> ->How to group when source ...
-> ->How to group when source ...
-> ->How to group when source ...
-> ->How to group when source ...
-> ->How to group when source ...
-> ->How to group when source ...
-> ->How to group when source ...
-> - Using EXCEL to create XSLT for... (1)
-> + Mapper generating XSLT, popula... (2)
-> + multiple columns (2)
-- [1-20] [21-40] [41-60] Next
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Venu ISubject: How to group when source has multiple transactions
Author: Venu I
Date: 09 Sep 2011 10:08 AM
Originally Posted: 09 Sep 2011 10:03 AM
Hi,

My source has multiple PO's information, for each Purchase order details I am display in an one HTML page with table format and I want to cocatenate the texts when ever qualifier's same for that particular PO's text.(REFSegments)

Here my source has two PO information. and I am trying to concat the REF nodes when qualifier is same. (my case different qualifier will repeat..when repeated need to concate the text..now L1 is repeating I may get some other qualifiers..same way)...Pls help me.

Source xml -

<?xml version="1.0" encoding="UTF-8"?>
<LIST>
<!-- PO number 1 details-->
<LIST_ST>
<BEG>
<PONumber>4501012345</PONumber>
</BEG>
<REF>
<Qualifier>AB</Qualifier>
<Code>A1 </Code>
<Text>TEST </Text>
</REF>
<REF>
<Qualifier>L1</Qualifier>
<Code>C1 </Code>
<Text>PO Numbber1 -TEST</Text>
</REF>
<REF>
<Qualifier>L1</Qualifier>
<Code>C1 </Code>
<Text>PO Numbber1 -TEST1</Text>
</REF>
</LIST_ST>

<!-- PO number 2 details-->
<LIST_ST>
<BEG>
<PONumber>4501012346</PONumber>
</BEG>
<REF>
<Qualifier>AB</Qualifier>
<Code>A1 </Code>
<Text>TEST2</Text>
</REF>
<REF>
<Qualifier>L1</Qualifier>
<Code>C1 </Code>
<Text>PO Numbber2 -TEST1</Text>
</REF>
<REF>
<Qualifier>L1</Qualifier>
<Code>C1 </Code>
<Text>PO Numbber2 -TEST1</Text>
</REF>
</LIST_ST>

</LIST>

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="html" version="1.0" encoding="UTF-8" indent="yes" />

<xsl:key name="Qualifier" match="LIST/LIST_ST/REF" use="Qualifier" />

<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>850</TITLE>
</HEAD>

<xsl:for-each select="LIST/LIST_ST">
<BODY>
<H3>Purchase Order Details</H3>

<H2>Purchase Order
<xsl:value-of select="position()" />

-
<xsl:value-of select="BEG/PONumber" />
</H2>

<table border="2" cellpadding="3" rules="all" bgcolor="#D8C454">
<TH>Qualifier</TH>

<TH>Code</TH>

<TH>Text</TH>

<xsl:for-each select="REF[generate-id(.) = generate-id(key('Qualifier', Qualifier)[1]) ]">
<TR>
<TD>
<xsl:value-of select="Qualifier" />
</TD>

<TD>
<xsl:value-of select="Code" />
</TD>

<TD>
<xsl:variable name="group" select="key('Qualifier', Qualifier)" />

<xsl:variable name="v1">
<xsl:for-each select="$group/Text">
<xsl:value-of select="." />
</xsl:for-each>
</xsl:variable>

<xsl:value-of select="$v1" />
</TD>
</TR>
</xsl:for-each>
</table>
</BODY>
</xsl:for-each>
</HTML>
</xsl:template>
</xsl:stylesheet>


output
______

Second PO details are not showing both REF segment texts are concatenated first PO qualifier level. How do I concatenate when the qualifier is same ?

Purchase Order Details
Purchase Order 1 - 4501012345
Qualifier Code Text
AB A1 TEST TEST2
L1 C1 PO Numbber1 -TESTPO Numbber1 -TEST1PO Numbber2 -TEST1PO Numbber2 -TEST1

Purchase Order Details
Purchase Order 2 - 4501012346
Qualifier Code Text


(Purchase order 2 doesn't contain any text both are PO number1)


DocumentPOOutput(1).docx
xsl output html page

UnknownPOOutput.docx
xsl output html page

Postnext
Ivan PedruzziSubject: How to group when source has multiple transactions
Author: Ivan Pedruzzi
Date: 09 Sep 2011 03:25 PM

You need to change your strategy taking into account duplicates only inside a LIST_ST element and not in the entire document.

The attached solution builds a key using the number of sibling that follows the current LIST_ST as index.


Hope this helps
Ivan Pedruzzi
Stylus Studio Team


DocumenttoHTML.xsl

Postnext
Venu ISubject: How to group when source has multiple transactions
Author: Venu I
Date: 09 Sep 2011 06:07 PM
Thanks a lot. It's working for header.
Now I am trying to concate same thing at line item level. but it is not concat the text correctly.

Source payload
__________________

<?xml version="1.0" encoding="UTF-8"?>
<LIST>
<LIST_ST>
<BEG>
<PONumber>4501012345</PONumber>
</BEG>

<REF>
<Qualifier>AB</Qualifier>

<Code>A1</Code>

<Text>TEST</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>PO Numbber1 -TEST</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>PO Numbber1 -TEST1</Text>
</REF>

<LINEITEM>
<ITEMNUMBER>10</ITEMNUMBER>

<REF>
<Qualifier>AB</Qualifier>

<Code>A1</Code>

<Text>TEST</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>FIRST LINE ITEM -PO Numbber1 -TEST</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>FIRST LINE ITEM -PO Numbber1 -TEST</Text>
</REF>
</LINEITEM>

<LINEITEM>
<ITEMNUMBER>20</ITEMNUMBER>

<REF>
<Qualifier>AB</Qualifier>

<Code>A1</Code>

<Text>TEST</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>sECOND LINE ITEM -PO Numbber1 -TEST</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>Second LINE ITEM -PO Numbber1 -TEST</Text>
</REF>
</LINEITEM>
</LIST_ST>

<LIST_ST>
<BEG>
<PONumber>4501012346</PONumber>
</BEG>

<REF>
<Qualifier>AB</Qualifier>

<Code>A1</Code>

<Text>TEST2</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>PO Numbber2 -TEST1</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>PO Numbber2 -TEST1</Text>
</REF>

<LINEITEM>
<ITEMNUMBER>10</ITEMNUMBER>

<REF>
<Qualifier>AB</Qualifier>

<Code>A1</Code>

<Text>TEST</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>FIRST LINE ITEM -PO Numbber2 -TEST</Text>
</REF>

<REF>
<Qualifier>L1</Qualifier>

<Code>C1</Code>

<Text>FIRST LINE ITEM -PO Numbber2 -TEST</Text>
</REF>
</LINEITEM>
</LIST_ST>
</LIST>

xsl 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="html" version="1.0" encoding="UTF-8" indent="yes" />

<xsl:key name="Qualifier" match="LIST/LIST_ST/REF" use="concat(count(../following-sibling::LIST_ST), Qualifier)" />

<xsl:key name="LI-Qualifier" match="LIST/LIST_ST/LINEITEM/REF" use="concat(count(../following-sibling::LINEITEM/REF), Qualifier)" />

<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>850</TITLE>
</HEAD>

<xsl:for-each select="LIST/LIST_ST">
<BODY>
<H3>Purchase Order Details</H3>

<H2>
<xsl:value-of select="concat('Purchase Order ', position(), '-', BEG/PONumber)" />
</H2>

<table border="2" cellpadding="3" rules="all" bgcolor="#D8C454">
<TH>Qualifier</TH>

<TH>Code</TH>

<TH>Text</TH>

<xsl:for-each select="REF[generate-id(.) = generate-id( key('Qualifier', concat(count(../following-sibling::LIST_ST), Qualifier))[1]) ]">
<TR>
<TD>
<xsl:value-of select="Qualifier" />
</TD>

<TD>
<xsl:value-of select="Code" />
</TD>

<TD>
<xsl:variable name="group" select="key('Qualifier', concat(count(../following-sibling::LIST_ST), Qualifier))" />

<xsl:variable name="v1">
<xsl:for-each select="$group/Text">
<xsl:value-of select="." />
</xsl:for-each>
</xsl:variable>

<xsl:value-of select="$v1" />
</TD>
</TR>
</xsl:for-each>
</table>

<xsl:for-each select="LINEITEM">
<xsl:variable name="ItemNumber1" select="ITEMNUMBER" />

<table border="2" cellpadding="3" rules="all" bgcolor="#D8C454">
<TH>Item number</TH>

<TH>Qualifier</TH>

<TH>Code</TH>

<TH>LINEITEM TEXT</TH>

<xsl:for-each select="REF[generate-id(.) = generate-id( key('LI-Qualifier', concat(count(../following-sibling::LINEITEM/REF), Qualifier))[1]) ]">
<TR>
<TD>
<xsl:value-of select="$ItemNumber1" />
</TD>

<TD>
<xsl:value-of select="Qualifier" />
</TD>

<TD>
<xsl:value-of select="Code" />
</TD>

<TD>
<xsl:variable name="group" select="key('LI-Qualifier', concat(count(../following-sibling::LINEITEM/REF), Qualifier))" />

<xsl:variable name="v1">
<xsl:for-each select="$group/Text">
<xsl:value-of select="." />
</xsl:for-each>
</xsl:variable>

<xsl:value-of select="$v1" />
</TD>
</TR>
</xsl:for-each>
</table>
</xsl:for-each>
</BODY>
</xsl:for-each>
</HTML>
</xsl:template>
</xsl:stylesheet>

outout-
_______

Purchase Order Details
Purchase Order 1-4501012345
Qualifier Code Text
AB A1 TEST
L1 C1 PO Numbber1 -TESTPO Numbber1 -TEST1
Item number Qualifier Code LINEITEM TEXT
10 AB A1 TEST
10 L1 C1 FIRST LINE ITEM -PO Numbber1 -TESTFIRST LINE ITEM -PO Numbber1 -TEST
Item number Qualifier Code LINEITEM TEXT
20 AB A1 TESTTEST
20 L1 C1 sECOND LINE ITEM -PO Numbber1 -TESTSecond LINE ITEM -PO Numbber1 -TESTFIRST LINE ITEM -PO Numbber2 -TESTFIRST LINE ITEM -PO Numbber2 -TEST

Purchase Order Details
Purchase Order 2-4501012346
Qualifier Code Text
AB A1 TEST2
L1 C1 PO Numbber2 -TEST1PO Numbber2 -TEST1
Item number Qualifier Code LINEITEM TEXT


Issue - second line item texts are concatenated the first PO second line item level.

Once again thank you so much for your help.

Regards,
Venu.


Documentsourcepayload.xml
Line item text

Unknownsourcepayload(1).xml
Source payload

Postnext
Venu ISubject: How to group when source has multiple transactions
Author: Venu I
Date: 09 Sep 2011 06:11 PM
attaching the xsl code


Documentxslcode.xml
xsl code with header and line item - con

Postnext
Ivan PedruzziSubject: How to group when source has multiple transactions
Author: Ivan Pedruzzi
Date: 09 Sep 2011 06:17 PM

Venu, which Stylus Studio version are you running?

Ivan Pedruzzi
Stylus Studio Team

Postnext
Venu ISubject: How to group when source has multiple transactions
Author: Venu I
Date: 09 Sep 2011 08:06 PM
Ivan,

I am using free cooktop software presently to complete my test case but later I am going to use the Stulus studio only.
Pls correct me what I am missing in my code to concate the line item texts.

Regards,
Venu.

Postnext
Venu ISubject: How to group when source has multiple transactions
Author: Venu I
Date: 12 Sep 2011 01:44 PM
Ivan,

Same thing I am trying for line item but it is not concatnating correctly at line item level, can you pls check my latest code attached in the update post.

Regards,
Venu.

Postnext
Ivan PedruzziSubject: How to group when source has multiple transactions
Author: Ivan Pedruzzi
Date: 12 Sep 2011 03:00 PM
Venu,

The Stylus Studio Developer Network supports Stylus Studio users exclusively.

Ivan Pedruzzi
Stylus Studio Team

Postnext
Venu ISubject: How to group when source has multiple transactions
Author: Venu I
Date: 12 Sep 2011 03:23 PM
Thanks for your suggestion Iven. Our client is using licenced Styllus studio - 2007 xml Enterprice suite and I tested same code and I am getting same issue. Right now I am using 2007 xml Enterprice suite.

Pls advice.

Regards,
Venu.

Postnext
Venu ISubject: How to group when source has multiple transactions
Author: Venu I
Date: 12 Sep 2011 05:35 PM
Ivan,

We are using licenced Stylus studio 2007 Enterprice suite. Pls let me know incase if you would need any other info.

Regards,
Venu.

Posttop
Ivan PedruzziSubject: How to group when source has multiple transactions
Author: Ivan Pedruzzi
Date: 13 Sep 2011 01:40 AM

See attached solution,

Ivan Pedruzzi
Stylus Studio Team


Documentxslcode.xsl

   
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! 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

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
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.