Re: [xsl] Select All Except First and Last

Subject: Re: [xsl] Select All Except First and Last
From: Martin Holmes <mholmes@xxxxxxx>
Date: Mon, 2 Dec 2013 13:40:40 -0800
I think this should work:

count(preceding-sibling::extent) ge 1 and count(following-sibling::extent) ge 1

Cheers,
Martin

On 13-12-02 01:10 PM, Nathan Tallman wrote:
This should be an easy one, but I can't figure it out. How do I select
all but the first and last matching nodes?

XML input:
<physdesc>
     <extent>285.42 linear feet</extent>
     <extent>227.5 record cartons</extent>
     <extent>2.5 Hollinger boxes</extent>
</physdesc>

HTML output:
285.42 linear feet (227.5 record cartons, 2.5 Hollinger boxes)

The input will vary, with different people encoding. I'd like to
select all but the first and last extent. While this time, that's only
one node at extent[2], there may be 8 or more extents. This is all
because a I want to format a list and insert commas. (Although the
second-to-end values will be wrapped in parenthesis.)

I'm using XSLT 2.0 and Saxon EE 9.4; I thought (and hoped) that the
below would work, alas it's not.
<xsl:for-each select="extent[not(extent[1])]">
     <xsl:value-of select="." separator=", "/>
</xsl:for-each>

Any help is appreciated.

Nathan

.


-- Martin Holmes University of Victoria Humanities Computing and Media Centre (mholmes@xxxxxxx)

Current Thread