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
Graham WoodsSubject: Help in formatting output HTML
Author: Graham Woods
Date: 19 Jul 2007 06:02 AM
Transforming XML --> HTML. I have a problem in formatting the final part of the HTML. I've attached the input XML, the XSLT and the output HTML. The input contains a large number of repeating <AdditionalInfo> groups. I need to re-format the output HTML so that the AdditionalInfo appears down the page rather than across it. Perhaps 4 AdditionalInfo's on each line would be ideal but, failing that, one below the next is acceptable.

Can it be done?

Any help/suggestions greatly appreciated.


DocumentInput(7).xml
Input file

UnknownXML_to_HTML.xsl
XSLT

UnknownOutput_HTML.html
Output HTML

Postnext
James DurningSubject: Help in formatting output HTML
Author: James Durning
Date: 19 Jul 2007 09:20 AM
Create a new template:
<xsl:template match="AdditionalInfo">
<tr>
<td>TextLabel</td>
<td><xsl:apply-templates select="TextLabel"/></td>
<xsl:for-each select="following-sibling::AdditionalInfo[position() &lt; 4]">
<td><xsl:apply-templates select="TextLabel"/></td>
</xsl:for-each>
</tr>
<tr>
<td>AddInfo</td>
<td><xsl:apply-templates select="AddInfo"/></td>
<xsl:for-each select="following-sibling::AdditionalInfo[position() &lt; 4]">
<td><xsl:apply-templates select="AddInfo"/></td>
</xsl:for-each>
</tr>
</xsl:template>

----
To call it, your original part in your table becomes:
<tr>
<td>AdditionalInfo</td>

<xsl:for-each select="OtherData">
<td>
<table border="1">
<tbody>
<xsl:apply-templates select="AdditionalInfo[(position() mod 4) = 1]"/>
</tbody>
</table>
</td>
</xsl:for-each>
</tr>

Honestly, this looks somewhat messy.
Option 2:
<tr>
<td>AdditionalInfo</td>
<xsl:for-each select="OtherData">
<td>
<table border="1">
<tbody>
<tr>
<th>Text Label</th>
<th>Add Info</th>
</tr>
<xsl:for-each select="AdditionalInfo">
<tr>
<td><xsl:apply-templates select="TextLabel"/></td>
<td><xsl:apply-templates select="AddInfo"/></td>
</tr>
</xsl:for-each>
</tbody>
</table>
</td>
</xsl:for-each>
</tr>

Posttop
Graham WoodsSubject: Help in formatting output HTML
Author: Graham Woods
Date: 19 Jul 2007 10:09 AM
Thanks James - perfect!

 
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.