RE: [xsl] XSL omit part of a text inside TAG

Subject: RE: [xsl] XSL omit part of a text inside TAG
From: "Buddhi D. Mahindarathne" <buddhi@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 10 Mar 2008 08:56:46 +0530
I modified XSL as follows..

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
	<xsl:template match="/">
		<xsl:apply-templates select="*"/>
	</xsl:template>
	<xsl:template
match="VisualObject[@xsi:type='CBarCode']/FontFace">
		<xsl:copy>
			<xsl:variable name="fontface" select = '.'/>
			<xsl:call-template name="while">
				<xsl:with-param name="param"
select="$fontface"/>
			</xsl:call-template>
		</xsl:copy>
	</xsl:template>

<xsl:template name="while">
	<xsl:param name="param"/>
	<xsl:choose>
		<xsl:when test="contains($param,'\')">
			<xsl:variable name="newparam"
select="substring-after($param,'\')"/>
			<xsl:call-template name="while">
				<xsl:with-param name="param"
select="$newparam"/>
			</xsl:call-template>
		</xsl:when>
		<xsl:otherwise>
			<xsl:value-of select="$param"/>
		</xsl:otherwise>
	</xsl:choose>
</xsl:template>
</xsl:stylesheet>

But I am not getting results I expected...

I am only getting following... :(

2.2.14.3Inches000500Laser JobLaser
Jobtruetruetruec8d98990-36d0-4ecc-bae8-c5faee8ea3d9121410050170007005001
00500500011false50000UnknownfalseNoAperturePulsedfalsefalse0false0Middle
Center00falsefalsefalse00000Default0Default100true100100truefalse00false
falsefalseShortYearStringSystem529falseTextBox00falsefalsefalseDayOfWeek
StringSystem507falseTextBox00falsefalsefalseWeekOfYearStringSystem508fal
seTextBox00falsefalsefalseShortMonthStringSystem525falseTextBox00falsefa
lsefalseLongMonthNameStringSystem528falseTextBox00falsefalsefalseLongDay
StringSystem521falseTextBox00falsefalsefalseTenthOfSecondStringSystem506
falseTextBox00falsefalsefalseMinutesStringSystem504falseTextBox00falsefa
lsefalseUnformatCycleTimeStringSystem150falseTextBox00falsefalsefalseLon
gYearStringSystem530falseTextBox00falsefalsefalseHoursStringSystem503fal
seTextBox00falsefalsefalseShortDayNameStringSystem522falseTextBox00false
falsefalseErrorBufferStringSystem100falseTextBox00falsefalsefalseLongMon
thStringSystem526falseTextBox00falsefalsefalseShortMonthNameStringSystem
527falseTextBox00falsefalsefalseLongDayNameStringSystem523falseTextBox00
falsefalsefalseSecondsStringSystem505falseTextBox00falsefalsefalseShortD
ayStringSystem520falseTextBox00falsefalsefalseDayOfYearStringSystem524fa
lseTextBox00falsefalsefalseFormatCycleTimeStringSystem151falseTextBox00f
alsefalsefalsezvar01CmpStringUserfalseTextBox00falsefalsefalsezvar02CmpS
tringUserfalseTextBox00falsefalsefalsezvar03CmpStringUserfalseTextBox00f
alsefalsefalsezvar04CmpStringUserfalseTextBox00falsefalsefalseivar05CmpI
ntegerUserfalseTextBox00falsefalsefalseivar06CmpIntegerUserfalseTextBox0
0falsefalsefalseivar07CmpIntegerUserfalseTextBox00falsefalsefalseivar08C
mpIntegerUserfalseTextBox00falsefalsefalsedvar09CmpDoubleUserfalseTextBo
x00falsefalsefalsedvar10CmpDoubleUserfalseTextBox00falsefalsefalsedvar11
CmpDoubleUserfalseTextBox00falsefalsefalsedvar12CmpDoubleUserfalseTextBo
x00falsefalsefalsecounterCmpIntegerUserfalseTextBox00falsefalseNonefalse
Terminator500Laser
Job.LayerLayertruetruetruecc90fd5d-242f-4a90-a0ed-af3bf46594d11214100601
2000700500100500500011false50000UnknownfalseNoAperturePulsedfalsefalse0f
alse0MiddleCenter00falsefalsefalse00000Default0Default100true100100truef
alse00falsefalseLayer133Laser
Job.Layer.Barcode1Barcode1truetruetrueaed80865-9e23-4693-8e93-5d3afd5110
7512141005017000700500100500500011false50000UnknownfalseNoAperturePulsed
falsefalse0cc90fd5d-242f-4a90-a0ed-af3bf46594d1false0MiddleCenter0-1fals
efalsefalse-2.86951.8904-2.86951.89040Default0Default100false100100truef
alse00falsefalse000.5false2.8144999999999953CODE 39
TEXT0.52.81449999999999530.0130.01300000000000020.00550BCD_3OF9BCD_SUBTY
PE_NONEBCD_CDMOD43BCD_DMSZ_DEFAULTBCD_DMFRMT_DEFAULT000000000000BCD_QRSZ
_DEFAULTBCD_QRFRMT_DEFAULTQREC_LOWQRMSK_00000012.50000000000000000000000
0012.5000000000000000000000000CODE 39 TEXTtrue
<FontFace xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>STDFONT.FNT</FontF
ace>falsefalse0.080.02falseVisualElementtrue133Laser
Job.Layer.Barcode2Barcode2truetruetrue08643fcb-9076-417f-8354-259e6cda31
2012141005017000700500100500500011false50000UnknownfalseNoAperturePulsed
falsefalse0cc90fd5d-242f-4a90-a0ed-af3bf46594d1false0MiddleCenter0-1fals
efalsefalse-3.04251.1342-3.04251.13420Default0Default100false100100truef
alse00falsefalse000.5false2.8144999999999953CODE 39
TEXT0.52.81449999999999530.0130.01300000000000020.00550BCD_3OF9BCD_SUBTY
PE_NONEBCD_CDMOD43BCD_DMSZ_DEFAULTBCD_DMFRMT_DEFAULT000000000000BCD_QRSZ
_DEFAULTBCD_QRFRMT_DEFAULTQREC_LOWQRMSK_00000012.50000000000000000000000
0012.5000000000000000000000000CODE 39 TEXTtrue
<FontFace xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>STORGFNT.FNT</Font
Face>falsefalse0.080.02falseVisualElementtrue133Laser
Job.Layer.Barcode3Barcode3truetruetruee7fbac54-bebd-46d1-addf-813e629b28
aa12141005017000700500100500500011false50000UnknownfalseNoAperturePulsed
falsefalse0cc90fd5d-242f-4a90-a0ed-af3bf46594d1false0MiddleCenter0-1fals
efalsefalse-0.27760.3988-0.27760.39880Default0Default100false100100truef
alse00falsefalse000.5false2.8144999999999953CODE 39
TEXT0.52.81449999999999530.0130.01300000000000020.00550BCD_3OF9BCD_SUBTY
PE_NONEBCD_CDMOD43BCD_DMSZ_DEFAULTBCD_DMFRMT_DEFAULT000000000000BCD_QRSZ
_DEFAULTBCD_QRFRMT_DEFAULTQREC_LOWQRMSK_00000012.50000000000000000000000
0012.5000000000000000000000000CODE 39 TEXTtrue
<FontFace xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>Swis721B.FNT</Font
Face>falsefalse0.080.02falseVisualElementtrue133Laser
Job.Layer.Barcode4Barcode4truetruetrue28c20b6f-2b67-4e2d-877a-e6f1040458
4b12141005017000700500100500500011false50000UnknownfalseNoAperturePulsed
falsefalse0cc90fd5d-242f-4a90-a0ed-af3bf46594d1false0MiddleCenter0-1fals
efalsefalse-2.3777-0.9306-2.3777-0.93060Default0Default100false100100tru
efalse00falsefalse000.5false2.8144999999999953CODE 39
TEXT0.52.81449999999999530.0130.01300000000000020.00550BCD_3OF9BCD_SUBTY
PE_NONEBCD_CDMOD43BCD_DMSZ_DEFAULTBCD_DMFRMT_DEFAULT000000000000BCD_QRSZ
_DEFAULTBCD_QRFRMT_DEFAULTQREC_LOWQRMSK_00000012.50000000000000000000000
0012.5000000000000000000000000CODE 39 TEXTtrue
<FontFace xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>SYMATH.FNT</FontFa
ce>falsefalse0.080.02falseVisualElementtrue133Laser
Job.Layer.Barcode5Barcode5truetruetrue2e259a5c-2fd6-4c14-827b-17323ace4d
2b12141005017000700500100500500011false50000UnknownfalseNoAperturePulsed
falsefalse0cc90fd5d-242f-4a90-a0ed-af3bf46594d1false0MiddleCenter0-1fals
efalsefalse-0.9674-2.0617-0.9674-2.06170Default0Default100false100100tru
efalse00falsefalse000.5false2.8144999999999953CODE 39
TEXT0.52.81449999999999530.0130.01300000000000020.00550BCD_3OF9BCD_SUBTY
PE_NONEBCD_CDMOD43BCD_DMSZ_DEFAULTBCD_DMFRMT_DEFAULT000000000000BCD_QRSZ
_DEFAULTBCD_QRFRMT_DEFAULTQREC_LOWQRMSK_00000012.50000000000000000000000
0012.5000000000000000000000000CODE 39 TEXTtrue
<FontFace xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>WGOTHIC.FNT</FontF
ace>falsefalse0.080.02falseVisualElementtruetruetrue


- Buddhi -

-----Original Message-----
From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx]
Sent: Friday, March 07, 2008 7:15 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] XSL omit part of a text inside TAG

Please see my remarks below ...

On Fri, Mar 7, 2008 at 5:03 PM, David Carlisle <davidc@xxxxxxxxx> wrote:
> <xsl:template match="/">
>  <xsl:apply-templates select="*"/>
> </xsl:template>

I think we can avoid this template. The built in rule for root node
can take care of this.

> <xsl:template match="VisualObject[@xsi:type='CBarCode']/FontFace">
>  <xsl:copy>
>    <xsl:call-template name="while">
>      <xsl:with-param name="foo" select="."/>
>    </xsl:call-template>
>  </xsl:copy>
> </xsl:template>

I think this is better design. By this way, you can reduce the
(cyclomatic) complexity of the code, and make the code easily
testable.


--
Regards,
Mukul Gandhi

Current Thread