[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Unable to get text() of node
One solution which no-one seems to have suggested is to strip all the whitespace text nodes using <xsl:strip-space elements="*"/> and then access child::text()[1] On advantage is that you will then get the same result from MSXML, which strips whitespace text nodes by default, as from everything else, which doesn't. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Liron [mailto:magilam@xxxxxxxxxxxxxxxx] > Sent: 21 January 2006 20:35 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: Unable to get text() of node > > Hi Andrew, > > Thank you very much for your reply. > > It works! > > As for your mixed content comment - You're absolutely right > but I'm taking > care of it. > In my project I'm actually applying xsl on html thus the use of mixed > content for children. > > Thanks again, I'm learning a lot from all the replies I get > Liron > > ----- Original Message ----- > From: "andrew welch" <andrew.j.welch@xxxxxxxxx> > To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > Sent: Saturday, January 21, 2006 8:59 PM > Subject: Re: Unable to get text() of node > > > > You can use the following stylesheet: > > > > <xsl:stylesheet version="1.0" > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > > > <xsl:template match="/"> > > <tree> > > <xsl:apply-templates select="tree/child[childname]"/> > > </tree> > > </xsl:template> > > > > <xsl:template match="child"> > > <childText> > > <xsl:apply-templates/> > > </childText> > > </xsl:template> > > > > <xsl:template match="childname"/> > > > > </xsl:stylesheet> > > > > But I would suggest that you source XML structure should be changed > > because when you have: > > > > <node> > > <child/> > > Some text > > </node> > > > > All the presentational whitespace surrounding "Some text" is part of > > the value (the first carriage return, the indentation and the second > > CR), which is not the intention. > > > > Having mixed content like that isn't really suitable for > data-centric > > XML as this problem has demonstrated - its much better to have an > > element for each value, and each element should only contain other > > elements, or text, but not both eg: > > > > <node> > > <child/> > > <child>Some text</child> > > </node> > > > > cheers > > andrew
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|