Re: [xsl] Pattern Matching a sting value

Subject: Re: [xsl] Pattern Matching a sting value
From: scott gabelhart <swgabel@xxxxxxxxxxxx>
Date: Fri, 06 Feb 2004 11:23:26 -0500
Kenny Akridge wrote:

Jim is right... you need to substring.

This will work:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
<xsl:template match="string">
	<xsl:call-template name="extractor">
		<xsl:with-param name="string" select="'font-family:'"/>

<xsl:template name="extractor">
	<xsl:param name="string"/>
	<xsl:value-of select="substring-before(substring-after(.,
$string), ';')"/>


-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of scott
Sent: Thursday, February 05, 2004 9:06 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Pattern Matching a sting value

Jim Fuller wrote:

[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of scott gabelhart
Sent: 06 February 2004 01:14
To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Pattern Matching a sting value

How in XSLT 1.0 do you interogate a specific portion of a string?

$stg = "font:...;font-family:Arial;color:#FFFFF;...."

I am only interested in the portion of this string that contains Arial.

Not sure what interested means, if you want to test for the existance
use the boolean contains() function;

contains($stg,'Arial') would return true

Otherwise use the following string based functions

	string substring-before(string, string)
	string substring-after(string, string)
	string substring(string, number, number?)
	string concat(string, string, string*)
	number string-length(string?)

You might need these as well;

	string normalize-space(string?)
	string translate(string, string, string)

Check out here for specific techniques;

Otherwise if you want something with regular expressions or more
advanced string handling like replacing text check out

Gl, Jim Fuller

XSL-List info and archive:


specifically I have a attribute that contains many values that I have to

break apart and set to individual attribute values so
a string that contains "color:#FFFFF;font-family:Arial;font-weight:bold;" I would need to select only the value begining after the : in font-family and ending with;before font-weight.

Do any of the string function above support the functionality I am looking for? Thanks for the tip on the contains function. Already using that function to determine if a attribute string value contains font-family in the first place.

- Scott

XSL-List info and archive:

XSL-List info and archive:

You suggestion worked perfectly. Thank you Kenny!

XSL-List info and archive:

Current Thread