Tuesday 29 December 2020

Sleep thread in XSLT (Delay a process by specific time)

 <?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vish="http://marklogicgd.blogspot.com/xslt/vishnu" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:thread="java.lang.Thread"
    exclude-result-prefixes="xs vish thread" version="2.0">

   
<xsl:variable name="millisecondsToSleep" select="7000"/>

   
<xsl:variable name="startTime" select="current-time()"/>

   
<xsl:function name="vish:threadSleep">
       
<xsl:param name="millisecondsToSleep" as="xs:integer"/>
       
<xsl:value-of select="
               
thread:sleep(if ($millisecondsToSleep gt 0) then
                   
$millisecondsToSleep
               
else
                   
1000)"/>
   
</xsl:function>

   
<xsl:template match="/">
        Start time:
<xsl:value-of select="$startTime"/>
       
<xsl:value-of select="vish:threadSleep($millisecondsToSleep)"/>
       
<xsl:variable name="endTime" select="current-time()"/>
        End time:
<xsl:value-of select="$endTime"/>
        TimeDifference :-
<xsl:value-of select="$endTime - $startTime"/>
   
</xsl:template>

</xsl:stylesheet>



Result:-

<?xml version="1.0" encoding="UTF-8"?>
    Start time: 20:36:22.393+05:30
    End time: 20:36:29.395+05:30
    TimeDifference :- PT7.002

Thursday 7 May 2020

java file list method in xslt

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:vis="java:java.io.File">
   
   
   
<xsl:template match="/">
       
       
<xsl:variable name="file" select="vis:new('/Users/vis/Practice/XSLT/test/')"/>
       
<xsl:for-each select="vis:list($file)">
           
<xsl:value-of select="."/> <xsl:value-of select="'&#x0A;'"/>
       
</xsl:for-each>
   
</xsl:template>
</xsl:stylesheet>