> 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
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