Re: [xsl] Find the string and apply the tag

Subject: Re: [xsl] Find the string and apply the tag
From: "Imsieke, Gerrit, le-tex" <gerrit.imsieke@xxxxxxxxx>
Date: Wed, 23 Dec 2009 13:54:20 +0100
Dear Selva,

xsl:analyze-string should do the trick.

flags="s" is for multiline input (treat newline as ordinary character).

The rules where to add boldface, i.e., the regex, might get somewhat complex when you try to capture all real-life cases. The 'x' flag will help you writing a more readable regex then. See http://www.w3.org/TR/xpath-functions/#flags

Things will get complicated though if some markup inside <derivation> has to survive. There's no analyze-string that will reproduce elements in the matched substring.

 <xsl:template match="/">
   <root>
     <xsl:apply-templates select="derivations/derivation" mode="boldify"/>
   </root>
 </xsl:template>

<xsl:template match="derivation" mode="boldify">
<xsl:copy>
<xsl:analyze-string select="." regex="(
replaces?
| was[ ]created[ ]in.+
)" flags="sx">
<xsl:matching-substring>
<b>
<xsl:value-of select="."/>
</b>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:copy>
</xsl:template>


Gerrit


Selvaganesh schrieb:
Hi Team,

Am new in the XSLT regex part, kindly help me, how can I find the string and
apply the tag.

Input file:
<derivations id="Section 111">
<derivation>Subsection (1) was created in drafting (i.e. added by the
drafter of the consolidation and not found in the earlier
legislation)</derivation>.
<derivation>Subsection (2) replaces <sccc:legis-cite sccc:title="Income and
Corporation Taxes Act" sccc:year="1988" sccc:chapter="1" sccc:section="root"
sccc:type="statute">Income and Corporation Taxes Act 1988</sccc:legis-cite>
<sccc:legis-cite sccc:title="Income and Corporation Taxes Act"
sccc:year="1988" sccc:chapter="1" sccc:section="" sccc:type="statute">Sch.5
para.8(6).</sccc:legis-cite></derivation>
<derivation>Subsection (3) replaces <sccc:legis-cite sccc:title="Income and
Corporation Taxes Act" sccc:year="1988" sccc:chapter="1" sccc:section="root"
sccc:type="statute">Income and Corporation Taxes Act 1988</sccc:legis-cite>
<sccc:legis-cite sccc:title="Income and Corporation Taxes Act"
sccc:year="1988" sccc:chapter="1" sccc:section="" sccc:type="statute">Sch.5
para.3(12).</sccc:legis-cite></derivation>
<derivation>Subsection (3) replace <sccc:legis-cite sccc:title="Income and
Corporation Taxes Act" sccc:year="1988" sccc:chapter="1" sccc:section="root"
sccc:type="statute">Income and Corporation Taxes Act 1988</sccc:legis-cite>
<sccc:legis-cite sccc:title="Income and Corporation Taxes Act"
sccc:year="1988" sccc:chapter="1" sccc:section="" sccc:type="statute">Sch.5
para.3(12).</sccc:legis-cite></derivation>
</derivations>

Expected Output:

<root>
<p>Subsection (1) <b>was created in drafting (i.e. added by the drafter of
the consolidation and not found in the earlier legislation)</b>.</p>
<p>Subsection (2) <b>replaces</b> Income and Corporation Taxes Act 1988Sch.5
para.8(6).</p>
<p>Subsection (3) <b>replace</b> Income and Corporation Taxes Act 1988Sch.5
para.3(12).</p>
</root>

Thanks to everyone,
Selva



Confidentiality Notice: This transmittal is a confidential communication. If you are not the intended recipient, you are hereby notified that you have received this transmittal in error and that any review, dissemination, distribution or copying of this transmittal is strictly prohibited. If you have received this communication in error, please notify this office immediately by reply and immediately delete this message and all of its attachments, if any.


-- Gerrit Imsieke Geschdftsf|hrer / Managing Director le-tex publishing services GmbH Weissenfelser Str. 84, 04229 Leipzig, Germany Phone +49 341 355356 110, Fax +49 341 355356 510 gerrit.imsieke@xxxxxxxxx, http://www.le-tex.de

Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930

Geschdftsf|hrer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard Vvckler

Current Thread