Subject: Re: [xsl] xsl:sequence From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 9 Aug 2006 10:30:24 +0100 |
> Can anyone tell me when I should be using value-of, when i should be using > copy-of and when I should be using sequence? I'll have a try, although I made one or two errors last time. > >............................................................., some people > >tend to > >over-use text() it makes the stylesheet rather fragile as it means that > >source files with comments in often fail > > But how else can you retreive the value of an element when it is text? use value-of. In XSLT 1.0 given <foo>a <!-- b -->c</foo> then <xsl:value-of select="foo"/> is a text node "a c" and <xsl:value-of select="foo/text()"/> is a text node "a " which is usually not what you want to happen just because someone added a comment. In XSLT2 value-of does produce the value of the whole sequence and re-merges text nodes, so actually inthi scase in xslt2 <xsl:value-of select="foo/text()"/> is text node "a c" but it's simpler for you and teh system just to go <xsl:value-of select="foo"/> Of course, if there are child elements of foo and you only want top level text then you may have to use text() to obtain that but that's a ratherr are requirement. Normally if their is mixed content you need _all_ the content, the contentthatjust happens to be at the top level isn't so often interesting. xsl:value-of always generates a _text node_ so use it when you want to generate text. <p><i>This</i> is <b>bold</b> text</p> Then (in XSLT2) <xsl:value-of select="p" produces a text node "This is bold text" <xsl:value-of select="p/text()" produces a text node " is text" <xsl:sequence select="p"/> returns the _same_ p node <p><i>This</i> is <b>bold</b> text</p> <xsl:copy-of select="p"/> returns a _new_ p node <p><i>This</i> is <b>bold</b> text</p> xsl:copy-of is there with the semantics it has because of xslt1, although to be honest I can't think off hand of any case where you would need to use xsl:copy-of rather than xsl:sequence. David
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl:sequence, tom tom | Thread | Re: [xsl] xsl:sequence, tom tom |
Re: [xsl] xsl:sequence, tom tom | Date | Re: [xsl] xsl:sequence, andrew welch |
Month |