[oXygen-user] an xslt challenge
James Cummings
james at blushingbunny.net
Mon Nov 5 06:10:02 CST 2018
Hi Lou,
Would it make sense to use xsl:for-each-group to group the sentences into
<s> units to make this easier? Then I'd probably recursively call a
template or function passing the current collection of <s> units as a
variable item* value, testing if its tokenised number is above or below
$maxWords.
Not got time to write that out as a solution atm, and I'm sure it can be
done without the recursivity as well, but that is the approach that would
have occurred to me at least.
-James
On Mon, 5 Nov 2018 at 12:03, Lou Burnard <lou.burnard at retired.ox.ac.uk>
wrote:
> I hope I am not abusing this list in asking occasionally for advice on the
> best way to hack something in xslt.
>
> Today's problem is to output only the first x sentences (string terminated
> by a full stop) of a paragraph such that the total number of words (space
> delimited strings) is less than some limit (call it $maxWords) Since the
> sentences are of variable length, obviously I don't know what x is.
>
> Here's where I got to so far:
>
> <xsl:template match="t:p">
> <xsl:variable name="pString">
> <xsl:value-of select="."/>
> </xsl:variable>
> <xsl:for-each select="tokenize($pString, '\.\s')">
> <xsl:variable name="seq">
> <xsl:value-of select="string(position())"/>
> </xsl:variable>
> <xsl:variable name="wordsSoFar">
> <xsl:value-of
> select="string-length(translate(normalize-space
> (preceding-sibling::text()), ' ', '')) + 1"/>
> </xsl:variable>
> <xsl:if test="$wordsSoFar < $maxWords">
>
> <s n="{$seq}">
> <xsl:value-of select="."/>
> </s>
>
> <xsl:if>
>
> </xsl:for-each>
> </xsl:template>
>
> But this is not valid because preceding-sibling:: wants a node() not a
> string (even though "text()" *is* a node imho).
>
> Am I going about this entirely the wrong way?
>
>
>
>
> _______________________________________________
> oXygen-user mailing list
> oXygen-user at oxygenxml.com
> https://www.oxygenxml.com/mailman/listinfo/oxygen-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.oxygenxml.com/pipermail/oxygen-user/attachments/20181105/1237a299/attachment.html>
More information about the oXygen-user
mailing list