Re: [xsl] That's a wrap!

Subject: Re: [xsl] That's a wrap!
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 4 Jan 2018 18:00:47 -0000
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