SXI Forum

A place to collect usefull tips, tricks and implementation strategies.

You are not logged in.

#1 22-11-2018 07:25:51

SeanR
Administrator
Registered: 20-11-2018
Posts: 148

XSLT Stylesheets to Limit Attachment file size

Limit Attachment file size to 3 Meg.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.sxi.co.za/XMLSchema" version="1.0">
    <xsl:output method="xml" encoding="utf-8" indent="yes"/>
     <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="//*[local-name()='HPDWorkInfo_1000002135']">
        <HPDWorkInfo_1000002135>
            <xsl:for-each select="//*[local-name()='XServiceBroker']//*[local-name()='HPDWorkInfo_1000002135']">
                <xsl:variable name="currentPos" select="position()"/>
                <xsl:choose>
                    <xsl:when test="(string-length(//*[local-name()='Data'][1]) > 3000000)">
                        <Name>Attachment_File_Too_Big</Name>
                        <OrigSize>0</OrigSize>
                        <Data></Data>
                    </xsl:when>
                    <xsl:otherwise>
                        <Name><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002135']//*[local-name()='Name']"/></Name>
                        <OrigSize><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002135']//*[local-name()='OrigSize']"/></OrigSize>
                        <Data><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002135']//*[local-name()='Data']"/></Data>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:for-each>
        </HPDWorkInfo_1000002135>
    </xsl:template>

    <xsl:template match="//*[local-name()='HPDWorkInfo_1000002136']">
        <HPDWorkInfo_1000002136>
            <xsl:for-each select="//*[local-name()='XServiceBroker']//*[local-name()='HPDWorkInfo_1000002136']">
                <xsl:variable name="currentPos" select="position()"/>
                <xsl:choose>
                    <xsl:when test="(string-length(//*[local-name()='Data'][1]) > 3000000)">
                        <Name>Attachment_File_Too_Big</Name>
                        <OrigSize>0</OrigSize>
                        <Data></Data>
                    </xsl:when>
                    <xsl:otherwise>
                        <Name><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002136']//*[local-name()='Name']"/></Name>
                        <OrigSize><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002136']//*[local-name()='OrigSize']"/></OrigSize>
                        <Data><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002136']//*[local-name()='Data']"/></Data>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:for-each>
        </HPDWorkInfo_1000002136>
    </xsl:template>

    <xsl:template match="//*[local-name()='HPDWorkInfo_1000002137']">
        <HPDWorkInfo_1000002137>
            <xsl:for-each select="//*[local-name()='XServiceBroker']//*[local-name()='HPDWorkInfo_1000002137']">
                <xsl:variable name="currentPos" select="position()"/>
                <xsl:choose>
                    <xsl:when test="(string-length(//*[local-name()='Data'][1]) > 3000000)">
                        <Name>Attachment_File_Too_Big</Name>
                        <OrigSize>0</OrigSize>
                        <Data></Data>
                    </xsl:when>
                    <xsl:otherwise>
                        <Name><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002137']//*[local-name()='Name']"/></Name>
                        <OrigSize><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002137']//*[local-name()='OrigSize']"/></OrigSize>
                        <Data><xsl:value-of select="//*[local-name()='HPDWorkInfo_1000002137']//*[local-name()='Data']"/></Data>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:for-each>
        </HPDWorkInfo_1000002137>

    </xsl:template>
</xsl:stylesheet>

Offline

Board footer

Powered by FluxBB