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
Brian ClementsSubject: Ignore Duplicate
Author: Brian Clements
Date: 04 Apr 2006 12:41 AM
I am currently trying to create a table of date which will display in an HTML page. It contains 4 columns. As rows are added I would like to display a blank table cell for information duplicated from previous row. I have included my XML Document, XSLT Stylesheet, current results, and result I am looking for.

I would appreciate any help you could give me!

Brian

Here is the XML Document:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="ignoredup.xslt"?>
<results>
<details>
<detail>
<ACDealerID>111111</ACDealerID>
<DealershipName>Dealership 1</DealershipName>
<Status>Pending</Status>
<Comments>This is a test</Comments>
</detail>
<detail>
<ACDealerID>111111</ACDealerID>
<DealershipName>Dealership 1</DealershipName>
<Status>Pending</Status>
<Comments>This is a test 2</Comments>
</detail>
<detail>
<ACDealerID>222222</ACDealerID>
<DealershipName>Dealership 2</DealershipName>
<Status>Pending</Status>
<Comments>This is a test</Comments>
</detail>
<detail>
<ACDealerID>222222</ACDealerID>
<DealershipName>Dealership 2</DealershipName>
<Status>Pending</Status><Subject></Subject>
<Comments>This is a test2</Comments>
</detail>
<detail>
<ACDealerID>222222</ACDealerID>
<DealershipName>Dealership 2</DealershipName>
<Status>Opened</Status>
<Comments>This is a test</Comments>
</detail>
</details>
</results>


Here is the XSLT document:

<?xml version="1.0" encoding="ISO-8859-1"?>
<html xsl:version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<body class="body">
<table>
<xsl:for-each select="results/details">
<tr>
<td>
<table width="100%" cellspacing="1"
cellpadding="5" border="0"
bgcolor="#2C5376">
<tr>
<td class="charthead"
bgcolor="#2C5376">
<font color='white'>
<b>AC Dealer ID</b>
</font>
</td>
<td class="charthead"
bgcolor="#2C5376">
<font color='white'>
<b>Dealership Name</b>
</font>
</td>
<td class="charthead"
bgcolor="#2C5376">
<font color='white'>
<b>Status</b>
</font>
</td>
<td class="charthead"
bgcolor="#2C5376">
<font color='white'>
<b>Comments</b>
</font>
</td>
</tr>
<xsl:for-each select="detail">
<tr>
<td class="chart"
bgcolor="#f0f0f0">
<xsl:value-of
select="ACDealerID"/>
</td>
<td class="chart"
bgcolor="#f0f0f0">
<xsl:value-of
select="DealershipName"/>
</td>
<td class="chart"
bgcolor="#f0f0f0">
<xsl:value-of
select="Status"/>
</td>
<td class="chart"
bgcolor="#f0f0f0">
<xsl:value-of
select="Comments"/>
</td>
</tr>
</xsl:for-each>
</table>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>


Here are my current results: (I typed in instead of displaying actual html)

AC Dealer ID Dealership Name Status Comments
------------ --------------- ------- -----------------
111111 Dealership 1 Pending This is a test
111111 Dealership 1 Pending This is a test 2
222222 Dealership 2 Pending This is a test
222222 Dealership 2 Pending This is a test 2
222222 Dealership 2 Opened This is a test 3

Here is the result I am looking for: (I typed in instead of displaying actual html)

AC Dealer ID Dealership Name Status Comments
------------ --------------- ------- -----------------
111111 Dealership 1 Pending This is a test
This is a test 2
222222 Dealership 2 Pending This is a test
This is a test 2
Opened This is a test 3



Postnext
Ivan PedruzziSubject: Ignore Duplicate
Author: Ivan Pedruzzi
Date: 04 Apr 2006 01:50 AM

You have to use xsl:key to remove duplicates


Hope this helps
Ivan Pedruzzi
Stylus Studio Team


DocumentACDealer.xsl

Postnext
Brian ClementsSubject: Ignore Duplicate
Author: Brian Clements
Date: 04 Apr 2006 11:33 AM
This solution reduced the number of rows returned from 5 to 2. For my situation this will not work. I need it to return 5 rows of data. Basically, we need to display an empty column for each duplicate entry. For instance, the first 2 rows are for AC Dealer ID 111111. We need to display 2 rows. The first row will have all the columns filled out. The second row will display with a blank in all the columns which match the previous row. So the second row should contain each element AC Dealer ID, Dealership Name, and Status as blanks and the Comments should have a value.

I really appreciate your help!

Thanks,
Brian

Posttop
Ivan PedruzziSubject: Ignore Duplicate
Author: Ivan Pedruzzi
Date: 04 Apr 2006 11:07 PM
I hoped that the sample I posted was a good starting point to understand how the key function works.

It is your responsabilty to learn XSLT, exploit it.

Attached you can find a new revision.

Ivan Pedruzzi
Stylus Studio Team


UnknownACDealer(1).xsl

 
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.