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

RE: Normalize-space does not work for node generated f

Subject: RE: Normalize-space does not work for node generated from msxml:node-set function
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Tue, 19 Mar 2002 08:36:17 -0000
normalize space in my xslt
There is no whitespace in the result tree fragment, so there is no way it
can be preserved. Whitespace-only text nodes in a stylesheet are always
stripped (ie, they have no effect.)

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of
> Macaulay,Malcolm (US)
> Sent: 19 March 2002 00:15
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx; Gennady Loskutov;
> jeni@xxxxxxxxxxxxxxxx
> Subject:  Normalize-space does not work for node generated from
> msxml:node-set function
>
>
> Thanks Jeni and Gennady for the help below. That works,
> however I still get a strange behaviour from the node-set function:
>
> my XML:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <XMLData>
> 	<ANode>
> 		<ChildNode>A</ChildNode>
> 		<ChildNode>B</ChildNode>
> 		<ChildNode>C</ChildNode>
> 	</ANode>
> </XMLData>
>
> My XSLT:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:msxsl="urn:schemas-microsoft-com:xslt">
> 	<xsl:variable name="XSLData">
> 		<ANode>
> 			<ChildNode>A</ChildNode>
> 			<ChildNode>B</ChildNode>
> 			<ChildNode>C</ChildNode>
> 		</ANode>
> 	</xsl:variable>
> 	<xsl:template match="/">
>
> 		<p>Normalised text from node-set function -
> spaces not preserved</p>
>
> 		<xsl:value-of
> select="normalize-space(msxsl:node-set($XSLData)/ANode)"/>
>
> 		<p>Normalised text from XML nodes - spaces are
> preserved</p>
>
> 		<xsl:value-of select="normalize-space(XMLData/ANode)"/>
>
> 	</xsl:template>
> </xsl:stylesheet>
>
> The result is:
>
> Normalised text from node-set function - spaces not preserved
> ABC
> Normalised text from XML nodes - spaces are preserved
> A B C
>
> Can anyone explain this?
>
> Thanks in advance
>
> cheers
>
> Malcolm
>
>
>
> Subject: Re:  Key function using key strings from msxsl:node-set
> generated node. Doesn't work?
>
>
> Hi Gennady,
>
> > Actually it gives Person by Address node-set, not a string. If you
> > use this key, you must supply an Address **element**, which is a
> > child of the Person element you are looking for. You are supplying a
> > string and therefore getting nothing (as it should be).
>
> That's not exactly true. If the expression that you use in the use
> attribute of xsl:key evaluates to a node set, then you get a number of
> entries for the matched node, one for each node in the node set. The
> *value* for these keys is still a string value, just a string value of
> the node.
>
> So in:
>
> <xsl:key name="PersonByAddress" match="/People/Person"
>          use="Address" />
>
> then given that each Person has just one Address, the use attribute
> returns a single Address element. The Person element's key value is
> the string value of that Address element. It's exactly the same as
> defining the key as:
>
> <xsl:key name="PersonByAddress" match="/People/Person"
>          use="string(Address)" />
>
> Likewise, when you access a key with the key() function, the second
> argument always gets converted to a string. There's no need to make
> sure that the two expressions (when defining the key and when using
> the key) have the same object type.
>
> Cheers,
>
> Jeni
>
> ---
> Jeni Tennison
> http://www.jenitennison.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
>


 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.