xsl-list
[Top] [All Lists]

Re: [xsl] another beginner question - strip directory info from variable

2018-10-14 03:29:48
Am 14.10.2018 um 03:49 schrieb Dave Lang emaildavelang(_at_)gmail(_dot_)com:
Hi again everyone - back with another beginner question.

I'm working in Oxygen and am using Saxon.

I'm searching through a bunch of xml files in search of jpg names. I'm creating variables as follows:

<xsl:variable name="allxml" select="collection('..//xml/?select=*.xml;recurse=yes')"/>
<xsl:variable name="jpgs" select="$allxml//element/@n"/>

$jpgs looks like:

dir1/jpg001.jpg dir1/jpg002.jpg dir1/jpg003.jpg

etc.

I want to strip away the dir info, but am having a hard time. I've tried using tokenize and substring-after but both return similar errors.

"A sequence of more than one item is not allowed as the first argument of fn:tokenize() ("dir1/jpg001.jpg", "dir1/jpg002.jpg")."

The variable jpgs is a sequence of attribute nodes, if you want to apply a function to each item in the sequence of nodes you can use

    $jpgs/tokenize(., '/')[last()]

and get a sequence of strings.

In XSLT 3 with XPath 3 you can also use

  $jpgs!tokenize(., '/')[last()]
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>