[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: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 27 Feb 2002 17:39:32 -0500
unproduced lyrics
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



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.