Re: [xsl] That's a wrap!

Subject: Re: [xsl] That's a wrap!
From: "Charles O'Connor coconnor@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 4 Jan 2018 18:16:41 -0000
Thanks to you and Christophe.

For the below, I would want the second group of <string-name> elements to be
in a different <person-group>, actually, but I hadn't gotten that far.

-----Original Message-----
From: Martin Honnen martin.honnen@xxxxxx
[mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx]
Sent: Thursday, January 4, 2018 1:01 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] That's a wrap!

On 04.01.2018 18:47, Charles O'Connor coconnor@xxxxxxxxxxxx wrote:

> That is, all the stuff I want wrapped is wrapped, but it's also
> repeated. I don't understand why
>
>          <xsl:apply-templates
> select="./node()[not(string-name|collab|etal)]"></xsl:apply-templates>
>
> (and the many variations of the same I've tried) does not exclude those
elements.

./node() selects all child nodes and your predicate then checks the selected
child node does not have string-name or collab or etal child elements.

You rather want
   select="node() except (string-name, collab, etal)"

> How do I exclude them? A bonus would be to know how to preserve the
punctuation and spaces between the <string-name> (and <collab> and <etal>)
elements.

Can you explain what is supposed to happen if a mixed-citation has those
elements mixed with other elements you don't want to wrap, e.g.
   <mixed-citation>
     <string-name>...</string-name>
     <article-title>...</article-title>
     <string-name>...</string-name>
   </mixed-citation>
do you want to wrap both string-name elements into the same parent?

Current Thread