|
Subject: Re: [xsl] select the word to the left of the current node From: "Terry Ofner tdofner@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 25 Aug 2022 17:21:05 -0000 |
I think I solved my own problem. In place of group-adjacent I used
group-ending-with: I also had to return "n/a" in groups that contained no
fnTerm so that only groups with fnTerms are selected in the main
choose/when.
<xsl:template match="p[var]">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:variable name="varCount">
<xsl:value-of select="count(var)"/>
</xsl:variable>
<xsl:for-each-group select="*|node()" group-ending-with="var">
<xsl:variable name="original_id">
<xsl:for-each select="current-group()/span/a">
<xsl:value-of select=
"substring-after(@href,'#')"/>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="tooltip_text">
<xsl:value-of select=
"$footnoteSet/p[@id=$original_id]/text()[1]"/>
</xsl:variable>
<xsl:variable name="fnTerm">
<xsl:choose>
<xsl:when test="matches($tooltip_text,'[a-z]')">
<xsl:value-of select=
"$footnoteSet/p[@id=$original_id]/@term"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>n/a</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="current-group()[matches(.,$fnTerm,'i')]"
>
<xsl:variable name="myText">
<xsl:value-of select=
"current-group()/preceding::text()[1]"/>
</xsl:variable>
<xsl:variable name="myTerm">
<xsl:value-of select="tokenize($myText,'
')[last()]"/>
</xsl:variable>
<xsl:analyze-string select="." regex="{$myTerm}">
<xsl:matching-substring></xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:apply-templates select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
<span class="classic" fnTerm="{$fnTerm}"
data-tooltip="{normalize-space($tooltip_text)}" data-tooltip-position=
"bottom">
<xsl:value-of select="$myTerm"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="current-group()">
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/723745> (by
> email <>)
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] select the word to the left o, Terry Ofner tdofner@ | Thread | [xsl] emulating sprintf in XSLT, Chris Papademetrious |
| [xsl] select the word to the left o, Terry Ofner tdofner@ | Date | [xsl] emulating sprintf in XSLT, Chris Papademetrious |
| Month |