|
Subject: Re: [xsl] Member function? From: "Dave Pawson dave.pawson@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 2 Aug 2022 14:57:26 -0000 |
On Tue, 2 Aug 2022 at 15:54, Michael Kay mike@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> I would always use a map for this in XSLT 3.0, rather than a node tree; and then use map:contains() to check if a value is present.
<grin/> OK. Not something I've used Mike.
I had the index for a sort by date, hence thought to use it again.
I'll play with that, live and learn!
Thank you.
>
> Michael Kay
> Saxonica
>
> > On 2 Aug 2022, at 15:50, Martin Honnen martin.honnen@xxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> >
> > Am 02.08.2022 um 16:10 schrieb Dave Pawson dave.pawson@xxxxxxxxx:
> >> xpath 2 or 3
> >>
> >> I have a sort index
> >> <d:sort_index name="my_sort">
> >> <d:entry key="Jan" index="0"/>
> >> <d:entry key="Feb" index="1"/>
> >> <d:entry key="Mar" index="2"/>
> >> <d:entry key="Apr" index="3"/>
> >> <d:entry key="May" index="4"/>
> >> <d:entry key="Jun" index="5"/>
> >> <d:entry key="Jul" index="6"/>
> >> <d:entry key="Aug" index="7"/>
> >> <d:entry key="Sep" index="8"/>
> >> <d:entry key="Oct" index="9"/>
> >> <d:entry key="Nov" index="10"/>
> >> <d:entry key="Dec" index="11"/>
> >>
> >> </d:sort_index>
> >>
> >> <xsl:variable name="sort_index" select="document('')//d:sort_index"/>
> >
> >
> > Given that you say XPath 2 or 3 I assume XSLT 2 or 3 so I would prefer a
> > variable or parameter e.g.
> >
> >
> > <xsl:variable name="sort-index">
> >
> > <d:entry key="Jan" index="0"/>
> > <d:entry key="Feb" index="1"/>
> > <d:entry key="Mar" index="2"/>
> > <d:entry key="Apr" index="3"/>
> > <d:entry key="May" index="4"/>
> > <d:entry key="Jun" index="5"/>
> > <d:entry key="Jul" index="6"/>
> > <d:entry key="Aug" index="7"/>
> > <d:entry key="Sep" index="8"/>
> > <d:entry key="Oct" index="9"/>
> > <d:entry key="Nov" index="10"/>
> > <d:entry key="Dec" index="11"/>
> >
> > </xsl:variable>
> >
> > and then a key
> >
> > <xsl:key name="sort-index" match="d:entry" use="@key"/>
> >
> >
> > and then a check on
> >
> > key('sort-index', tokenize(d, ' '), $sort-index)
> >
> > or
> >
> > key('sort-index', tokenize(d, '')[1], $sort-index)
> >
> >> and xml with many
> >>
> >> <book>
> >> <author>
> >> <f>H</f>
> >> <s>Stone</s>
> >> </author>
> >> <t>Jane Doe</t>
> >> <d>Jul 2018</d>
> >> </book>
> >>
> >> I want to check that the d element (month) has an entry in the sort
> >> index using xsl:for-each over //book/d
> >>
> >> Suggestions please?
> >>
> >> TiA
> >>
> >>
> >
> >
>
>
--
Dave Pawson
XSLT XSL-FO FAQ.
Docbook FAQ.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Member function?, Michael Kay mike@xxx | Thread | Re: [xsl] Member function?, Michael Kay mike@xxx |
| Re: [xsl] Member function?, Dave Pawson dave.paw | Date | Re: [xsl] Member function?, Michael Kay mike@xxx |
| Month |