OpenNTF.org - DXL Transformation code for al
My Links (Not logged in)
Code Bin Search
 
Hosted by Prominic.NET
Rate This Code
5 - brilliant stuff
4 - very nice
3 - average
2 - needs work
1 - bad
   OpenNTF Code Bin
About This Code
Brief Description:
DXL Transformation code for all design elements 
Rating:
Rating: 4.5 , Number of votes: 2 
Contributor:
Joseph P White 
Category:
Design Elements, XML/XSL 
Type:
Reporting 
Document Release:
1.0b 
Notes Version:
R6.x 
Last Modified:
23 Sep 2005 
OpenNTF Disclaimer

All of the program code and information presented in the OpenNTF.org Code Bin are provided "as-is", and should be used at your own risk. OpenNTF.org make no express or implied warranty about anything in the Code Bin, and OpenNTF.org will not be responsible or liable for any damage caused by the use or misuse of anything from this site. OpenNTF.org makes no guarantees about anything. Please thoroughly test all of the knowledge and code you find here before you attempt to use them in your production environment.

Code / Description
Since R6 came out, IBM has included a "teaser" XSLT file for performing transformations of DXL rendered design elements. I've expanded this XSLT file to include design element properties, fields, formulas, computed text, actions, etc, of the typical design elements (forms, pages, views, folders, agents, scriptlibraries, image resources).


I've used this often recently to create a report that sorts design elements by the date modified. This has been very helpful to me recently and I thought I would share the XSLT file for those interested. Feel free to use and improve as you see fit.

The easiest way to use this is to copy the XSL code below to a text file with the ".xsl" extension or just save the attached file to your Lotus Notes /Data/xsl directory. Use the designer client's DXL Tools-->Transformer menu to build the report using your newly created XSLT file.


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:dxl='http://www.lotus.com/dxl'>
<xsl:output method='html' />
<xsl:strip-space elements='*' />


<xsl:template match="/">
<style>body{font-family:arial;} h3 {font:16pt arial;} a {font-family:arial;text-align:center;} td {font-family:arial;font:x-small; border-width:1px;border-style:single;border-color:#CCCCCC;} th {font-family:arial;text-align:left;font:bold;color:black;background-color:#CCCCCC;} .hover{background-color:#eoeoeo;} .small{font:x-small;} .informational{background-color:#c6eff7;} .warning{background-color:#ffb573;}</style>


<xsl:apply-templates select="dxl:database"/>

<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th><xsl:text>Design Element:</xsl:text></th>
<th><xsl:text>Comment:</xsl:text></th>
<th><xsl:text>Last Modified (descending):</xsl:text></th>
<th/>
</tr>
<xsl:for-each select="//dxl:modified">
<xsl:sort select="dxl:datetime" order="descending"/>
<tr>
<td><xsl:value-of select="../../@name"/></td>
<td> <xsl:value-of select="../../@comment"/>
</td>
<td><xsl:apply-templates select="."/></td>
<td>
<a>
<xsl:attribute name="href">#<xsl:value-of select="../@noteid"/>
</xsl:attribute>
<xsl:text>More info</xsl:text>
</a>
</td>
</tr>
</xsl:for-each>
</table>


<xsl:apply-templates select="//*[local-name()='form' or local-name()='subform']" />
<xsl:apply-templates select="//*[local-name()='view' or local-name()='folder']" />
<xsl:apply-templates select="//dxl:agent" />
<xsl:apply-templates select="//dxl:scriptlibrary" />
<xsl:if test="count(//dxl:imageresource) &gt; 0">
<h4>
Image Resources
</h4>
<div>
<xsl:attribute name="id">
IMAGERESOURCE
</xsl:attribute>
<xsl:attribute name="style">display:block;</xsl:attribute>
<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:text>Name:</xsl:text>
</th>
<th>
<xsl:text>Last Modified:</xsl:text>
</th>
<th>
<xsl:text>Last Updated By:</xsl:text>
</th>
</tr>
<xsl:apply-templates select="//dxl:imageresource"/>
</table>
<br />
</div>
</xsl:if>


</xsl:template>

<xsl:template match="dxl:database">
<h3><xsl:value-of select="@title"/></h3>
<h3><xsl:value-of select="@path"/></h3>
<h3><xsl:value-of select="@replicaid"/></h3>
<h3>From Template: <xsl:value-of select="@fromtemplate"/></h3>
</xsl:template>

<xsl:template match="//*[local-name()='form' or local-name()='subform' or local-name()='page']">
<h4>
<xsl:value-of select="translate(local-name(),'formsubformpage','FormSubformPage')" />

<xsl:value-of select="@name" />
</h4>
<div>
<xsl:attribute name="id">
FORM_
<xsl:value-of select="local-name()" />
<xsl:value-of select="@name" />
</xsl:attribute>
<xsl:attribute name="style">display:block;</xsl:attribute>
<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:value-of select="translate(local-name(),'formsubformpage','FormSubformPage')" />

<xsl:text>Name:</xsl:text>
</th>
<td>
<a>
<xsl:attribute name="name">#<xsl:value-of select="dxl:noteinfo/@noteid"/></xsl:attribute>
<xsl:value-of select="@name" />
</a>
</td>
</tr>
<tr>
<th>
<xsl:text>Comments:</xsl:text>
</th>
<td>
<xsl:value-of select="@comment" />
</td>
</tr>
<tr>
<th>
<xsl:text>Signed By:</xsl:text>
</th>
<td>
<xsl:value-of select="dxl:wassignedby" />
</td>
</tr>

<tr>
<th>
<xsl:text>Last Modified:</xsl:text>
</th>
<td>
<xsl:apply-templates select="dxl:noteinfo/dxl:modified" />
</td>
</tr>
<tr>
<th>
<xsl:text>Last Updated:</xsl:text>
</th>
<td>
<xsl:value-of select="dxl:updatedby" />
</td>
</tr>


<tr>
<th>
<xsl:attribute name="colspan">2</xsl:attribute>
<xsl:text>Summary of Data Elements:</xsl:text>
</th>
</tr>
<tr>
<td>
<xsl:text>Field Elements (visible on the form):</xsl:text>

</td>

<td>
<xsl:value-of select="count(.//*[local-name()='field'])" />
</td>
</tr>
<tr>
<td>

<xsl:text>Item Elements (store data but not visible on the form):</xsl:text>

</td>
<td>
<xsl:value-of select="count(.//dxl:item)" />
</td>
</tr>
<tr>
<th>

<xsl:attribute name="colspan">2</xsl:attribute>
<xsl:text>Summary of Presentation/Functionality Elements:</xsl:text>
</th>
</tr>
<tr>
<td>
<xsl:text>Action Elements:</xsl:text>

</td>
<td>
<xsl:value-of select="count(.//dxl:action)" />
</td>
</tr>
<tr>
<td>
<xsl:text>Link Elements:</xsl:text>
</td>
<td>
<xsl:value-of select="count(.//dxl:urllink)" />
</td>
</tr>
<tr>
<td>
<xsl:text>Computed Text (for display only):</xsl:text>
</td>
<td>
<xsl:value-of select="count(.//dxl:computedtext)" />
</td>
</tr>
<tr>
<th>
<xsl:attribute name="colspan">2</xsl:attribute>
<xsl:text>Form Properties</xsl:text>
</th>
</tr>
<tr>
<td>
<xsl:text>Automatically Refresh Fields</xsl:text>
</td>
<td>
<xsl:value-of select="@recalc" />
</td>
</tr>
<tr>
<td>
<xsl:text>Include in menu:</xsl:text>
</td>
<td>
<xsl:value-of select="@nocompose" />
</td>
</tr>
<tr>
<td>
<xsl:text>Include in search builder</xsl:text>
</td>
<td>
<xsl:value-of select="@noquery" />
</td>
</tr>
<tr>
<td>
<xsl:text>Display HTML for all fields</xsl:text>
</td>
<td>
<xsl:value-of select="@htmlallfields" />
</td>
</tr>
<tr>
<td>
<xsl:text>Allow public access:</xsl:text>
</td>
<td>
<xsl:value-of select="@publicaccess" />
</td>
</tr>

</table>
<br />




<table>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:attribute name="colspan">5</xsl:attribute>
<xsl:text>Field Elements</xsl:text>
</th>
</tr>
<tr>
<th>
<xsl:attribute name="width">30%</xsl:attribute>
<xsl:text>Name</xsl:text>
</th>
<th>
<xsl:text>Type</xsl:text>
</th>
<th>
<xsl:text>Kind</xsl:text>
</th>
<th>
<xsl:text>Multi</xsl:text>
</th>
<th>
<xsl:text>Formula</xsl:text>
</th>
</tr>
<xsl:apply-templates select=".//dxl:field"/>
</table>
<br />
<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>

<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:attribute name="colspan">2</xsl:attribute>
<xsl:text>Item Elements</xsl:text>
</th>
</tr>
<tr>
<th>
<xsl:attribute name="width">30%</xsl:attribute>
<a>
<xsl:attribute name="name">#<xsl:value-of select="dxl:noteinfo/@noteid"/></xsl:attribute>
<xsl:value-of select="@name" />
</a>
</th>
<th>
<xsl:text>Value</xsl:text>
</th>
</tr>
<xsl:apply-templates select=".//dxl:item"/>

</table>
<xsl:apply-templates select="dxl:actionbar" />
<xsl:if test="count(.//dxl:urllink) &gt; 0">
<br />
<table>
<xsl:attribute name="width">90%</xsl:attribute>

<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:attribute name="colspan">2</xsl:attribute>
<xsl:text>URL Elements</xsl:text>
</th>
</tr>
<tr>
<th>
<xsl:attribute name="width">30%</xsl:attribute>
<xsl:text>Label</xsl:text>
</th>
<th>
<xsl:text>URL</xsl:text>
</th>
</tr>
<xsl:apply-templates select=".//dxl:urllink" />
</table>
</xsl:if>
<xsl:if test="count(.//dxl:computedtext) &gt; 0">
<br />
<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>

<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:text>Computed Text Elements</xsl:text>
</th>
</tr>
<tr>
<th>
<xsl:text>Formula</xsl:text>
</th>
</tr>
<xsl:apply-templates select=".//dxl:computedtext" />
</table>
</xsl:if>
</div>
</xsl:template>


<xsl:template match="//*[local-name()='view' or local-name()='folder']">
<h4>
<xsl:value-of select="translate(local-name(),'viewfolder','ViewFolder')" />

<xsl:value-of select="@name" />
</h4>
<div>
<xsl:attribute name="id">
VIEW_
<xsl:value-of select="local-name()" />
<xsl:value-of select="@name" />
</xsl:attribute>
<xsl:attribute name="style">display:block;</xsl:attribute>
<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:value-of select="translate(local-name(),'viewfolder','ViewFolder')" />

<xsl:text>Name:</xsl:text>
</th>
<td>
<a>
<xsl:attribute name="name">#<xsl:value-of select="dxl:noteinfo/@noteid"/></xsl:attribute>
<xsl:value-of select="@name" />
</a>
</td>
</tr>
<tr>
<th>
<xsl:text>Comments:</xsl:text>
</th>
<td>
<xsl:value-of select="@comment" />
</td>
</tr>
<tr>
<th>
<xsl:text>Signed By:</xsl:text>
</th>
<td>
<xsl:value-of select="dxl:wassignedby" />
</td>
</tr>

<tr>
<th>
<xsl:text>Last Modified:</xsl:text>
</th>
<td>
<xsl:apply-templates select="dxl:noteinfo/dxl:modified" />
</td>
</tr>
<tr>
<th>
<xsl:text>Last Updated:</xsl:text>
</th>
<td>
<xsl:value-of select="dxl:updatedby" />
</td>
</tr>
<tr>
<th>
<xsl:attribute name="colspan">2</xsl:attribute>
<xsl:text>Summary:</xsl:text>
</th>
</tr>
<tr>
<td>
<a>
<xsl:attribute name="href">#COLUMNS</xsl:attribute>
<xsl:text>Columns:</xsl:text>
</a>
</td>

<td>
<xsl:value-of select="count(//dxl:column)" />
</td>
</tr>
<tr>
<td>
<xsl:text>Discard Index:</xsl:text>
</td>
<td>
<xsl:value-of select="@indexdiscard" />
</td>
</tr>
<tr>
<td>
<xsl:text>Refresh Index:</xsl:text>
</td>
<td>
<xsl:value-of select="@indexrefresh" />
</td>
</tr>
<tr>
<td>
<xsl:text>Allow public access:</xsl:text>
</td>
<td>
<xsl:value-of select="@publicaccess" />
</td>
</tr>

</table>
<br />

<table>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:attribute name="colspan">6</xsl:attribute>
<xsl:text>Columns</xsl:text>
</th>
</tr>
<tr>
<th>
<xsl:attribute name="width">30%</xsl:attribute>
<xsl:text>Programmatic Name:</xsl:text>
</th>
<th>
<xsl:text>Sort:</xsl:text>
</th>
<th>
<xsl:text>Show as Link:</xsl:text>
</th>
<th>
<xsl:text>Hidden:</xsl:text>
</th>
<th>
<xsl:text>Formula:</xsl:text>
</th>
</tr>
<xsl:apply-templates select="dxl:column" />
</table>
<xsl:apply-templates select="dxl:actionbar"/>
</div>
</xsl:template>

<xsl:template match="//dxl:agent">
<h4><xsl:text>Agent</xsl:text>
<xsl:value-of select="@name" />
</h4>
<div>
<xsl:attribute name="id">
AGENT_
<xsl:value-of select="local-name()" />
<xsl:value-of select="@name" />
</xsl:attribute>
<xsl:attribute name="style">display:block;</xsl:attribute>
<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:text>Agent</xsl:text>
<xsl:text>Name:</xsl:text>
</th>
<td>
<a>
<xsl:attribute name="name">#<xsl:value-of select="dxl:noteinfo/@noteid"/></xsl:attribute>
<xsl:value-of select="@name" />
</a>
</td>
</tr>
<tr>
<th>
<xsl:text>Comments:</xsl:text>
</th>
<td>
<xsl:value-of select="@comment" />
</td>
</tr>
<tr>
<th>
<xsl:text>Signed By:</xsl:text>
</th>
<td>
<xsl:value-of select="dxl:wassignedby" />
</td>
</tr>

<tr>
<th>
<xsl:text>Last Modified:</xsl:text>
</th>
<td>
<xsl:apply-templates select="dxl:noteinfo/dxl:modified" />
</td>
</tr>
<tr>
<th>
<xsl:text>Last Updated:</xsl:text>
</th>
<td>
<xsl:value-of select="dxl:updatedby" />
</td>
</tr>
<tr>
<th>
<xsl:attribute name="colspan">2</xsl:attribute>
<xsl:text>Summary:</xsl:text>
</th>
</tr>
<tr>
<td>
<xsl:text>Documents:</xsl:text>
</td>

<td>
<xsl:value-of select="dxl:documentset/@type" />
</td>
</tr>
<tr>
<td>
<xsl:text>Trigger:</xsl:text>
</td>
<td>
<xsl:value-of select="dxl:trigger/@type" />
</td>
</tr>
<tr>
<td>
<xsl:text>Schedule:</xsl:text>
</td>
<td>
<xsl:value-of select="dxl:trigger/dxl:schedule/@type" />
</td>
</tr>

<tr>
<td>
<xsl:text>Run on Location:</xsl:text>
</td>
<td>
<xsl:value-of select="dxl:trigger/dxl:schedule/@runlocation" />
</td>
</tr>

<tr>
<td>
<xsl:text>Run on Server:</xsl:text>
</td>
<td>
<xsl:value-of select="dxl:trigger/dxl:schedule/@runserver" />
</td>
</tr>
<tr>
<td>
<xsl:text>Start Time:</xsl:text>
</td>
<td>
<xsl:value-of select="dxl:trigger/dxl:schedule/dxl:starttime/dxl:datetime" />
</td>
</tr>
</table>
<br />

<table>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:attribute name="colspan">6</xsl:attribute>
<xsl:text>Code</xsl:text>
</th>
</tr>

<xsl:for-each select=".//dxl:code">
<tr>
<td>
<xsl:apply-templates select="."/>
</td>
</tr>
</xsl:for-each>


</table>
</div>
</xsl:template>

<xsl:template match="//dxl:scriptlibrary">
<h4><xsl:text>Agent</xsl:text>
<xsl:value-of select="@name" />
</h4>
<div>
<xsl:attribute name="id">
SCRIPTLIBARY_
<xsl:value-of select="local-name()" />
<xsl:value-of select="@name" />
</xsl:attribute>
<xsl:attribute name="style">display:block;</xsl:attribute>
<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:text>Script Library</xsl:text>
<xsl:text>Name:</xsl:text>
</th>
<td>
<a>
<xsl:attribute name="name">#<xsl:value-of select="dxl:noteinfo/@noteid"/></xsl:attribute>
<xsl:value-of select="@name" />
</a>
</td>
</tr>
<tr>
<th>
<xsl:text>Comments:</xsl:text>
</th>
<td>
<xsl:value-of select="@comment" />
</td>
</tr>
<tr>
<th>
<xsl:text>Signed By:</xsl:text>
</th>
<td>
<xsl:value-of select="dxl:wassignedby" />
</td>
</tr>

<tr>
<th>
<xsl:text>Last Modified:</xsl:text>
</th>
<td>
<xsl:apply-templates select="dxl:noteinfo/dxl:modified" />
</td>
</tr>
<tr>
<th>
<xsl:text>Last Updated:</xsl:text>
</th>
<td>
<xsl:value-of select="dxl:updatedby" />
</td>
</tr>
</table>
<br />

<table>
<xsl:attribute name="width">90%</xsl:attribute>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:attribute name="colspan">6</xsl:attribute>
<xsl:text>Code</xsl:text>
</th>
</tr>

<xsl:for-each select="//dxl:code">
<tr>
<td>
<xsl:apply-templates select="."/>
</td>
</tr>
</xsl:for-each>


</table>
</div>
</xsl:template>



<xsl:template match="dxl:imageresource">
<tr>
<td>
<a>
<xsl:attribute name="name">#<xsl:value-of select="dxl:noteinfo/@noteid"/></xsl:attribute>
<xsl:value-of select="@name" />
</a>

</td>
<td><xsl:apply-templates select="dxl:noteinfo/dxl:modified"/></td>
<td><xsl:value-of select="dxl:updatedby"/></td>

</tr>
</xsl:template>


<xsl:template match="dxl:field">
<tr>
<td>
<xsl:value-of select="@name" />
</td>
<td>
<xsl:value-of select="@type" />
</td>
<td>
<xsl:value-of select="@kind" />
</td>
<td>
<xsl:choose>
<xsl:when test="@allowmultivalues='true'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
<td>

<xsl:apply-templates select=".//*[local-name()='code']" />
</td>
</tr>
</xsl:template>

<xsl:template match="dxl:item">
<tr>
<td>
<xsl:value-of select="@name" />
</td>
<td>
<xsl:apply-templates select=".//dxl:number" />
<xsl:apply-templates select=".//dxl:datetime" />
<xsl:apply-templates select=".//dxl:text"/>

</td>
</tr>

</xsl:template>

<xsl:template match="dxl:action">
<tr>
<td>
<xsl:value-of select="@title" />
</td>
<td>
<xsl:apply-templates select=".//*[local-name()='code']" />
</td>
</tr>

</xsl:template>

<xsl:template match="dxl:actionbar">
<br />
<table>
<xsl:attribute name="align">center</xsl:attribute>
<xsl:attribute name="width">90%</xsl:attribute>

<xsl:attribute name="cellpadding">1</xsl:attribute>
<xsl:attribute name="cellspacing">0</xsl:attribute>
<xsl:attribute name="border">1</xsl:attribute>
<tr>
<th>
<xsl:attribute name="colspan">6</xsl:attribute>
<xsl:text>Action Elements</xsl:text>
</th>
</tr>
<tr>
<th>
<xsl:attribute name="width">30%</xsl:attribute>
<xsl:text>Name</xsl:text>
</th>
<th>
<xsl:text>Action Performed</xsl:text>
</th>
</tr>
<xsl:apply-templates select="dxl:action" />
</table>

</xsl:template>
<xsl:template match="dxl:urllink">
<tr>
<td>
<xsl:value-of select="*" />
</td>
<td>
<xsl:value-of select="@href" />
</td>
</tr>
</xsl:template>

<xsl:template match="dxl:computedtext">
<tr>
<td>
<xsl:apply-templates select=".//*[local-name()='code']" />
</td>
</tr>
</xsl:template>
<xsl:template match="*[local-name()='datetime']">
<xsl:value-of select="substring(., 5,2)" />/<xsl:value-of select="substring(., 7,2)" />/<xsl:value-of select="substring(., 1,4)" />

<xsl:value-of select="substring(., 10,2)" />
:
<xsl:value-of select="substring(., 12,2)" />
:
<xsl:value-of select="substring(., 14,2)" />
</xsl:template>
<xsl:template match="*[local-name()='code']">
<br />
<b>
<xsl:value-of select="@event" />
<xsl:text>:</xsl:text>
</b>
<xsl:apply-templates select=".//*[local-name()='formula']" />
<xsl:apply-templates select=".//*[local-name()='lotusscript']" />
<xsl:apply-templates select=".//*[local-name()='java']" />
<xsl:apply-templates select=".//*[local-name()='javascript']" />
</xsl:template>
<xsl:template match="dxl:formula">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="dxl:lotusscript">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="dxl:java">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="dxl:javascript">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="dxl:modified">
<br />
<xsl:apply-templates select="dxl:datetime" />
</xsl:template>
<xsl:template match="dxl:column">
<tr>
<td>
<xsl:value-of select="@itemname" />
</td>
<td>
<xsl:value-of select="@sort" />
</td>
<td>
<xsl:value-of select="@showaslinks" />
</td>
<td>
<xsl:value-of select="@hidden" />
</td>
<td>
<xsl:apply-templates select=".//*[local-name()='code']" />
</td>
</tr>
</xsl:template>


<xsl:template match="*">
<xsl:value-of select="." />
</xsl:template>
<!-- Match all text that has not yet been picked up by the templates, and discard it. -->
<xsl:template match="text()"></xsl:template>


</xsl:stylesheet>

Usage / Example
Code Attachments
 Comments

No documents found

 Add your comment!