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)
-> + 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)
-- Previous [61-80] [81-100] [101-120] Next
+ XQuery Help and Discussion (2016)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
John HoffmanSubject: Order of Processing Child Elements
Author: John Hoffman
Date: 28 Mar 2012 01:10 PM
Hi,
I'm new to XSL and I'm trying to display the following:

<STATEMENT>
<Account>
<ACCTNUM name="Account Number">111111111</ACCTNUM>
<PPSTAR/>
<DISDAT name="Acount Date">01/13/2011</DISDAT>
<Charges>
<Item>
<DESC>charge 1a</DESC>
<AMT>1043.00</AMT>
</Item>
<Item>
<DESC>charge 1b</DESC>
<AMT>3605.16</AMT>
</Item>
<TOTCHGAMT name="Total Charges">5886.06</TOTCHGAMT>
</Charges>
<Credits>
<Item type="INS">
<DESC>Pmts/Adjs</DESC>
<AMT>-5123.44</AMT>
</Item>
<TOTPAYAMT>-5123.44</TOTPAYAMT>
</Credits>
<ACCTBAL name="Balance Due">762.62</ACCTBAL>
<DUNMESS>Please remit payment in full.</DUNMESS>
</Account>
<Account>
<ACCTNUM name="Account Number">222222222</ACCTNUM>
<PPSTAR/>
<DISDAT name="Account Date">01/07/2011</DISDAT>
<Charges>
<Item>
<DESC>Charge 2a</DESC>
<AMT>149.39</AMT>
</Item>
<Item>
<DESC>Charge 2b</DESC>
<AMT>819.32</AMT>
</Item>
<TOTCHGAMT name="Total Charges">1477.67</TOTCHGAMT>
</Charges>
<Credits>
<Item type="INS">
<DESC>Pmts/Adjs</DESC>
<AMT>-1405.10</AMT>
</Item>
<TOTPAYAMT>-1405.10</TOTPAYAMT>
</Credits>
<ACCTBAL name="Balance Due">72.57</ACCTBAL>
<DUNMESS>Please remit payment in full.</DUNMESS>
</Account>
</STATEMENT>

To look like this:

Account# Date Desc/Code Charges Credits Balance
111111111 01/13/2011
Supplies 43.00
Laboratory 819.32
MEDICARE Pmts/Adjs -5123.44
Total Pmts/Adjs -5123.44
Balance Due 762.62
222222222 01/13/2011
Supplies 43.00
Laboratory 819.32
MEDICARE Pmts/Adjs -5123.44
Total Pmts/Adjs -5123.44
Balance Due 762.62
333333333 01/13/2011
Supplies 43.00
Laboratory 819.32
MEDICARE Pmts/Adjs -5123.44
Total Pmts/Adjs -5123.44
Balance Due 762.62

Instead I get this:

Account# Date Desc/Code Charges Credits Balance
111111111 01/13/2011
222222222 01/13/2011
333333333 01/13/2011
Supplies 43.00
Laboratory 819.32
Supplies 43.00
Laboratory 819.32
Supplies 43.00
Laboratory 819.32
MEDICARE Pmts/Adjs -5123.44
MEDICARE Pmts/Adjs -5123.44
MEDICARE Pmts/Adjs -5123.44
Total Pmts/Adjs -5123.44
Total Pmts/Adjs -5123.44
Total Pmts/Adjs -5123.44
Balance Due 762.62
Balance Due 762.62
Balance Due 762.62


My syntax:

<xsl:for-each select="Account">

<tr height="15px" nowrap="1">
<td width="212px" style="text-align: center;font-size: 13px;"> <xsl:value-of select="ACCTNUM"/><xsl:value-of select="PPSTAR"/></td>
<td width="88px" style="text-align: center;font-size: 13px;"> <xsl:value-of select="DISDAT"/></td>
<td width="204px"></td>
<td width="109px"></td>
<td width="109px"></td>
<td width="109px"></td>
</tr>

</xsl:for-each>

<!--CHARGES AND CREDITS AND BALANCE DETAIL-->

<xsl:for-each select="Account/Charges/Item">

<tr height="15px" nowrap="1">
<td width="212px"></td>
<td width="88px"></td>
<td width="204px" style="text-align: left;font-size: 13px;"> <xsl:value-of select="DESC"/></td>
<td width="109px" style="text-align: right;font-size: 13px;"> <xsl:value-of select="AMT"/></td>
<td width="109px"></td>
<td width="109px"></td>
</tr>

</xsl:for-each>

<xsl:for-each select="Account/Charges">

<tr height="15px" nowrap="1">
<td width="212px"></td>
<td width="88px"></td>
<td width="204px" style="text-align: left;font-size: 13px; font-weight:bold;">Total Charges</td>
<td width="109px" style="text-align: right;font-size: 13px; font-weight:bold;"> <xsl:value-of select="TOTCHGAMT"/></td>
<td width="109px"></td>
<td width="109px"></td>
</tr>

</xsl:for-each>

<xsl:for-each select="Account/Credits/Item">

<tr height="15px" nowrap="1">
<td width="212px"></td>
<td width="88px"></td>
<td width="204px" style="text-align: left;font-size: 13px;font-weight:bold;"> <xsl:value-of select="DESC"/></td>
<td width="109px"></td>
<td width="109px" style="text-align: right;font-size: 13px;font-weight:bold;"> <xsl:value-of select="AMT"/></td>
<td width="109px"></td>
</tr>

</xsl:for-each>


<xsl:for-each select="Account/Credits">

<tr height="15px" nowrap="1">
<td width="212px"></td>
<td width="88px"></td>
<td width="204px" style="text-align: left;font-size: 13px;font-weight:bold;">Total Pmts/Adjs</td>
<td width="109px"></td>
<td width="109px" style="text-align: right;font-size: 13px;font-weight:bold;"> <xsl:value-of select="TOTPAYAMT"/></td>
<td width="109px"></td>
</tr>

</xsl:for-each>

<xsl:for-each select="Account">

<tr height="15px" nowrap="1">
<td width="212px"></td>
<td width="88px"></td>
<td width="204px" style="text-align: left;font-size: 13px;font-weight:bold;">Balance Due</td>
<td width="109px"></td>
<td width="109px"></td>
<td width="109px" style="text-align: right;font-size: 13px;font-weight:bold;"> <xsl:value-of select="ACCTBAL"/></td>
</tr>

</xsl:for-each>

<tr height="15px" nowrap="1">
<td width="212px"></td>
<td width="88px"></td>
<td width="204px"></td>
<td width="109px"></td>
<td width="109px"></td>
<td width="109px"></td>
</tr>

<!--DUNMESS MESSAGE-->

<xsl:for-each select="Account">

<tr height="15px" nowrap="1">
<td width="830px" colspan="6" style="text-align: left; text-indent:10px; font-size: 13px;"> <xsl:value-of select="DUNMESS"/></td>
</tr>

</xsl:for-each>

How do I 'loop' through each account to get them to process their descendants at the same time? Do I need to you choose/when test= or something else?

Any advice would be greatly appreciated.
Thanks,
John

Posttop
Ivan PedruzziSubject: Order of Processing Child Elements
Author: Ivan Pedruzzi
Date: 28 Mar 2012 02:56 PM
Which Stylus Studio version are you running?

<<"These boards are part of the Stylus Studio Developer Network. They are a service to users of Stylus Studio only.">>

If you download, register and start developing XSLT using Stylus
Studio you will have access to the forum resources.
http://www.stylusstudio.com/xml_download.html

Hope this helps
Stylus Studio Team

   
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.