This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Problem with not() function.
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] Re: Problem with not() function.
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Tue, 9 Oct 2001 00:03:07 -0700 (PDT)
- Reply-To: xsl-list at lists dot mulberrytech dot com
> I meet a problem when use not function in the xsl. I use not function in the >
> select statement
> to filter out some node.
>
> The code is :
>
> ...
> ...
> <xsl:template match="sub-title">
> <xsl:apply-templates select="*[not(self::para[1]) and not(self::title) and
> not(self::graphic[1])]" />
> </xsl:template>
> ...
> ...
>
> i need to filter out the para[1] node , the title node and the graphic[1] node.
>
> the xml is :
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <Document>
> ...
> ...
> <sub-title>
> <title>"Bluetooth" Wireless Home Control Center</title>
> <para>Some text here 1.</para>
> <para>some text here 2.</para>
> <para>some text here 3.</para>
>
> <graphic>
> <title/>
> <pic><para>pic/eln/bluetooth01.jpg</para></pic>
> </graphic>
> </sub-title>
> ...
> ...
> </Document>
self::anyName[1] is always true, so not(self::anyName[1]) will always return false.
What you probably wanted is:
*[not(self::title
or self::para and not(preceding-sibling::para)
or self::graphic and not(preceding-sibling::graphic))]
Cheers,
Dimitre Novatchev.
__________________________________________________
Do You Yahoo!?
NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list