[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Value-of, copy-of

Subject: Re: Value-of, copy-of
From: Mike Ferrando <mikeferrando@xxxxxxxxx>
Date: Wed, 27 Feb 2002 15:17:48 -0800 (PST)
xpath exclude some child node
Wendell,
Well, this really made my day!

I was rather close and doing better than I thought with the syntax.

I was working at it correctly, but did not think to use "self", I was
using "child". 

<xsl:copy-of select="node()[not(child::C1007) and
not(child::C1011)]"/>

I found some other help, so I changed your xsl a bit to:

<xsl:copy-of select="./C1001/node()[.....]"/>

Thanks for the info, I needed it.

Mike F.


--- Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> wrote:
> Mike,
> 
> Ah, the reason this is tricky is ... it's tricky.
> 
> If your context node is the C1001 (that is, you're in a template
> matching 
> the C1001), then you want all children except the C1007 and C1011
> children.
> 
> That would be:
> 
> <xsl:copy-of select="node()[not(self::C1007) and
> not(self::C1011)]"/>
> 
> This translates as "copy all child nodes that are not themselves
> C1001 
> nodes and not C1011 nodes, either".
> 
> This actually works out to be the same as
> 
> <xsl:copy-of select="node()[not(self::C1007|self::C1011)]"/>
> 
> The reason for this is that the expression
> (self::C1007|self::C1011) tests 
> as true for any C1007 or C1011 node, but false for any other.
> That's 
> because those two are the only kinds of nodes from which the union
> of these 
> two XPath expressions (which both traverse the self:: axis),
> returns a 
> node-set with any node in it.
> 
> But that may be more than you wanted to know. :-)
> 
> Cheers,
> Wendell
> 
> At 05:21 PM 2/27/2002, you wrote:
> >Wendell,
> >thanks for your patience. Here is a sample (attributes removed for
> >simplicity):
> >
> >XML:
> ><SHOW>
> ><C1001>
> ><TITLE>I Picked a Daisy</TITLE> (ca. <UNITDATE>1960</UNITDATE>)
> >unproduced, lyrics by <PERSNAME>Alan Jay Lerner</PERSNAME>
> >
> ><C1007>Note:  the collaboration between Rodgers and
> ><PERSNAME>Lerner</PERSNAME> was terminated, Lerner subsequently
> >completed the show with <PERSNAME>Burton Lane</PERSNAME> and it
> >became <TITLE>On a Clear Day You Can See Forever</TITLE>.</C1007>
> >
> ><C1011>see  [Sketches for I Married an Angel]</C1011>
> ></C1001>
> ></SHOW>
> >
> >I want this:
> >
> ><TITLE>I Picked a Daisy</TITLE> (ca. <UNITDATE>1960</UNITDATE>)
> >unproduced, lyrics by <PERSNAME>Alan Jay Lerner</PERSNAME>
> >
> >Thanks,
> >Mike F.
> >
> >--- Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> wrote:
> > > Mike F.:
> > >
> > > At 04:00 PM 2/27/2002, you wrote:
> > > >I would like to exclude some elements from my copy-of output.
> I am
> > > >trying to use a template with xsl:copy but I am still not
> finding
> > > the
> > > >correct syntax for not().
> > > >
> > > ><xsl:copy-of select="C1001/node()[not(child::C1007) and
> > > >not(child::C1010)]"/>
> > >
> > > This translates into English as "copy all nodes that are
> children
> > > of my
> > > C1001 children but that do not have C1007 children and do not
> have
> > > C1010
> > > children of their own".
> > >
> > > To be more explicit, I'm afraid we need to see a snippet of
> your
> > > source XML
> > > again, with a specification of which nodes you want to copy and
> > > which ones
> > > you don't. (Tell us in the natural language of your choice, and
> > > there's
> > > probably someone around who can translate it back into XPath.)
> > >
> > > But the ultimate solution to your problem is to master XPath.
> 'and'
> > > and
> > > 'or' operators, the not() function, etc., are all part of
> XPath.
> > >
> > > Cheers,
> > > Wendell
> > >
> > >
> > >
>
>======================================================================
> > > Wendell Piez
> > > mailto:wapiez@xxxxxxxxxxxxxxxx
> > > Mulberry Technologies, Inc.
> > > http://www.mulberrytech.com
> > > 17 West Jefferson Street                    Direct Phone:
> > > 301/315-9635
> > > Suite 207                                          Phone:
> > > 301/315-9631
> > > Rockville, MD  20850                                 Fax:
> > > 301/315-8285
> > >
>
>----------------------------------------------------------------------
> > >    Mulberry Technologies: A Consultancy Specializing in SGML
> and
> > > XML
> > >
>
>======================================================================
> > >
> > >
> > >  XSL-List info and archive:
> > > http://www.mulberrytech.com/xsl/xsl-list
> > >
> >
> >
> >__________________________________________________
> >Do You Yahoo!?
> >Yahoo! Greetings - Send FREE e-cards for every occasion!
> >http://greetings.yahoo.com
> >
> >  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>
======================================================================
> Wendell Piez                           
> mailto:wapiez@xxxxxxxxxxxxxxxx
> Mulberry Technologies, Inc.               
> http://www.mulberrytech.com
> 17 West Jefferson Street                    Direct Phone:
> 301/315-9635
> Suite 207                                          Phone:
> 301/315-9631
> Rockville, MD  20850                                 Fax:
> 301/315-8285
>
----------------------------------------------------------------------
>    Mulberry Technologies: A Consultancy Specializing in SGML and
> XML
>
======================================================================
> 
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 


__________________________________________________
Do You Yahoo!?
Yahoo! Greetings - Send FREE e-cards for every occasion!
http://greetings.yahoo.com

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.