Hello list,
I have the following XML document:
<?xml version="1.0" encoding="UTF-8"?>
monthToDate
100
HPQ Enterprise
Worldwide
monthToDate
200
Enterprise Systems Group
Worldwide
yearToDate
300
HPQ Enterprise
Worldwide
yearToDate
400
Enterprise Systems Group
Worldwide
This is the Order Nugget Portlet Status text
This is the Order Nugget Dynamic Message text
This is the Order Nugget User Submitted text
And I need to creat an HTML row from the elements, ie MonthToDate and YearToDate. The kicker is that MonthToDate and YearToData repeate between node sets–as you can see each occur twice–i just need them once to create a headin for an HTML table. Then I need to extract the product names along with the content. So the HTML would look like the following:
MonthToDate YearToDate
HPQ Enterprise 100 300
Enterprise
Systems Group 200 400
Worldwide
I have attached the stylesheet I have hacking around in. Many thanks
Shane
dataNuggetView2.xsl (3.07 KB)
This is a standard grouping problem. There are two standard coding patterns for solving grouping problems in XSLT. The first (simple but not very efficient) is to use a construct like
select=“name[not(.=…/preceding-sibling::*/name)]”
which selects the name elements that don’t match the name in a previous record.
For large data sets, a much more efficient approach is the so-called Muenchian grouping method, which is described in most XSLT textbooks, and also at http://www.jenitennison.com/xslt/grouping
I hope this helps you.
Michael Kay
thanks for the info! the attached xsl seems to do the trick. you can apply it to the sample xml in my original post.
dataNuggetView3.xsl (2.87 KB)