xsl-list
[Top] [All Lists]

Re: how to zap content between sibling elements?

2002-08-28 13:05:10
Jay,

To get rid of the text between <k>s you need a XPath expression like:

    following-sibling::k and not(preceding-sibling::k)

in the context of the <p> element for the text before, and another one,
reversed for the text after. The code below solves the problem you posted:

    <xsl:template match="p">
        <p><xsl:copy-of select="*[not(self::k)]" />
        <xsl:apply-templates select="child::text()[following-sibling::k and
not(preceding-sibling::k)]" />
        <grp><xsl:apply-templates select="k" /></grp>
        <xsl:value-of select="following-sibling::text()" />
        <xsl:apply-templates select="child::text()[preceding-sibling::k and
not(following-sibling::k)]" /></p>
    </xsl:template>

    <xsl:template match="k">
        <k><xsl:apply-templates /></k>
    </xsl:template>

Helder.

--
Helder da Rocha (helder(_at_)argonavis(_dot_)com(_dot_)br)
Web Consultant
www.argonavis.com.br
São Paulo, Brazil
+55 (11) 9291 0567

----- Original Message -----
From: "Jay Han" <hjhjjj(_at_)yahoo(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Wednesday, August 28, 2002 3:01 PM
Subject: [xsl] how to zap content between sibling elements?


Hello all,

I have a few siblings that I need to group together like this:

original:
<p> <!-- maybe some other element other than 'k' -->
foo
   <k>A</k> bar <k>B</k> baz <k>C</k>
quux and more stuff
</p>

goal:
<p>
foo
   <grp><k>A</k><k>B</k><k>C</k></grp>
quux and more stuff
</p>

I can do the grouping  but I am having difficulties zapping 'bar'
and 'baz' between <k>'s.  Currently I get:
<p>
foo
   <grp><k>A</k><k>B</k><k>C</k></grp> bar baz
quux and more stuff
</p>
I think I need a condition to my default copying template
to handle the case of "when in-between <k>'s zap the content".
What combination of axes and predicates can I use to express
this condition?  Any hint or suggestion would be appreciated.

thanks,

-jay


=====
jhan(_at_)acm(_dot_)org

__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list





 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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