This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: how to zap content between sibling elements?


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@argonavis.com.br)
Web Consultant
www.argonavis.com.br
São Paulo, Brazil
+55 (11) 9291 0567

----- Original Message -----
From: "Jay Han" <hjhjjj@yahoo.com>
To: <xsl-list@lists.mulberrytech.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@acm.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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]