[Home] [By Thread] [By Date] [Recent Entries]
Following is a XSLT 2.0 solution for this:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://dummy-ns"
version="2.0"><xsl:output method="text" /> <xsl:template match="s"> <xsl:variable name="result" select="fn:getstring(normalize-space(string-join(//text(), ' ')), 'nutrient')" /> <xsl:value-of select="$result" /> </xsl:template> <xsl:function name="fn:getstring" as="xs:string"> <xsl:param name="text" as="xs:string " /> <xsl:param name="word" as="xs:string " /> <xsl:variable name="x">
<xsl:for-each select="tokenize(substring-before($text, $word), '
')[position() <= 5]">
<y><xsl:value-of select="." /></y>
</xsl:for-each>
<y><xsl:value-of select="concat('*', $word, '*')" /></y>
<xsl:for-each select="tokenize(substring-after($text, $word), '
')[position() <= 6]">
<y><xsl:value-of select="." /></y>
</xsl:for-each>
</xsl:variable>
<xsl:sequence select="concat('... ', string-join($x//y, ' '), ' ...')" />
</xsl:function></xsl:stylesheet> When this is applied to the XML: <s id="39" xmlns:z="http://z-ns"> The aforementioned oxygenated <z:e sem="chebi" ids="33284">nutrient</z:e> emulsion (using the fluorocarbon FC-80) was placed in a Harvey pediatric oxygenator (volume 1230cc) and maintained at about 40 DEG C </s> The output produced is: ... The aforementioned oxygenated *nutrient* emulsion (using the fluorocarbon FC-80) ... This might not be perfect. But it could help you get started. On 5/2/07, Antony Quinn <aquinn@xxxxxxxxx> wrote: Hello, -- Regards, Mukul Gandhi
|

Cart



