[xsl] XSL | index-of()

Subject: [xsl] XSL | index-of()
From: "Janine Lantzsch loderndesfeuer@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 27 Sep 2019 09:07:50 -0000
Hello community, I am new in this list and hope very much that someone
can help me or give me an input with which I can continue to work.
I would like to use XSL to check whether a abbreviation from a list
appears in a certain string of recurring elements. The abbreviation is
always written in brackets. The source file looks like this (very
simplified): <?xml version="1.0" encoding="UTF-8"?>
 <doc no="1">The abbreviation (ABG) appears in this doc.</doc>
 <doc no="2">This doc has no shortcut.</doc>
 <doc no="3">An abbreviation (BBL).</doc>
 <doc no="4">And here (ECK).</doc>
 <doc no="5">And here again (ECK).</doc>
Only unfortunately I still have a bug somewhere with the index-of. Maybe
the more experienced of you will see right away what's wrong with my
code. I've been brooding since last night and can't find a solution :(
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:fn="http://www.w3.org/2005/xpath-functions"; version="2.0">
 <xsl:output method="xml" encoding="UTF-8"/>
 <xsl:template match="all">
 <xsl:variable name="abbr" select="abbreviations/abbr"/>
 <xsl:for-each select="//doc">
 <xsl:variable name="actdoc" select="."/>
 <xsl:if test="fn:contains($actdoc, fn:index-of($abbr, $actdoc))">
 <xsl:attribute name="no"><xsl:value-of select="@no"/></xsl:attribute>
 <xsl:value-of select="$actdoc"/>
The output should look something like this: <all>
 <doc no="1">ABG</doc>
 <doc no="3">BBL</doc>
 <doc no="4">ECK</doc>
 <doc no="5">ECK</doc>
Thank you so much for your help! Many greetingsJanine S. XSL-List info
and archiveEasyUnsubscribe (by email)

Current Thread