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
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Scott ReedSubject: Adding the content of an element and displaying the total
Author: Scott Reed
Date: 27 Jan 2008 11:43 AM
Code examples below...

I have a customer who has a jBidWatcher auctions.xml with about four years of auction information stored within. I put together a little xsl stylesheet to extract the information from the auctions.xml and present the info in a more readable format. He likes what I have put together so far, but would like a summary at the bottom of the page which shows totals.

What I want to do is create a loop that:

1 - Checks for the highbidder to be equal to w9evt1
2 - If highbidder equal to w9evt1 then grab value of currently price element
3 - loop again and keep adding together value of currently price until we have added all the possible prices on all the auctions that w9evt1 won.
4 - Display the output

Code below...

Thanks for any help!
Scott

--- START XML SAMPLE ---

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="auctions.xsl"?>

<!DOCTYPE auctions SYSTEM "http://www.jbidwatcher.com/auctions.dtd">
<jbidwatcher format="0101">
<auctions count="593">
<server user="w9evt1" name="ebay" password1="xxxxxxxxxxxxxx">
<auction id="7536829472">
<info>
<title>RCA Multi Test Meter/Continity/Diode/120vAC/Probes/Tran</title>
<seller>biggies35180</seller>
<start>1123397100000</start>
<end>1124001900000</end>
<bidcount>2</bidcount>
<currently price="7.38" currency="USD"/>
<shipping price="0.0" currency="UNK"/>
<insurance optional="true" price="0.0" currency="UNK"/>
<buynow price="0.0" currency="UNK"/>
<minimum price="1.0" currency="USD"/>
<highbidder>w9evt1</highbidder>
<location>Lexington, Kentucky</location>
<feedback>8</feedback>
<percentage>100</percentage>
</info>
<complete/>

--- END XML SAMPLE ---

--- START XLS CODE ---

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
01/26/08 - SReed - INITIAL CREATION
-->

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
<h2>Archived Auction List</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">ID</th>
<th align="left">Title</th>
<th align="left">Winner</th>
<th align="left">Price</th>
<th align="left">Ship</th>
</tr>
<xsl:for-each select="jbidwatcher/auctions/server/auction">
<xsl:sort select="@id"/>
<tr>
<!-- @id will allow us to display the id# from the auction tag -->
<td><xsl:value-of select="@id"/></td>
<td><xsl:value-of select="info/title"/></td>
<!-- Lets choose to highlight George's userid pink on all won auctions -->
<xsl:choose>
<!-- Note that w9evt is enclosed with '' -->
<xsl:when test="info/highbidder='w9evt1'">
<td bgcolor="#ff00ff">
<xsl:value-of select="info/highbidder"/></td>
</xsl:when>
<!-- If George was not the winner, than just display normal -->
<xsl:otherwise>
<td><xsl:value-of select="info/highbidder"/></td>
</xsl:otherwise>
</xsl:choose>
</table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

--- END XLS CODE ---

Postnext
Scott ReedSubject: Adding the content of an element and displaying the total
Author: Scott Reed
Date: 27 Jan 2008 09:12 PM
Well, looks like I figured out a method to do this... problem is, it requires the exslt common extension... which does not work nicely with firefox 2.x.

Firefox 3 beta 2 seems to work fine with the exsl extensions, but my customer does not have that and my webhost is on unix and I am not sure how do server side xml translation with php. Anyone have a better solution for me?

So here's a code snippet of working code....

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl"
version="1.0">

<xsl:variable name="bidder" select="'w9evt1'" />

<xsl:template match="/">
<html>
<body>
<xsl:variable name="subTotals">
<xsl:for-each select="auctions/info">
<xsl:choose>
<xsl:when test="highbidder=$bidder">
<number><xsl:value-of select="currently/@price"/></number>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:variable>

<p>Total Price = <xsl:value-of select="format-number(sum(exsl:node-set($subTotals)/number),'#.00')"/></p>

</body>
</html>
</xsl:template>
</xsl:stylesheet>

Posttop
Tony LavinioSubject: Adding the content of an element and displaying the total
Author: Tony Lavinio
Date: 27 Jan 2008 09:23 PM
This does not seem to have much to do with Stylus Studio,
and this is the Stylus Studio support forum.

For questions like this, you might find the general-purpose
XSL-LIST run by Mulberry Technologies to be much more useful.

You might also try the Mozilla public development forums.

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
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.