RE: not selecting child elements with same name as par
> > > <xsl:value-of select="text()"/> > > > > > That's dangerous, it will only select the first child text node. > > But wasn't that exactly what was required in the orginal question? No. There have been three possibilities discussed so far, as shown below. A concrete example follows. 1) string-value of an element, which is the concatenation of all *descendant* text nodes (what Anthony tried) <xsl:value-of select="."/> (where "." is the current node, an element) 2) string-value of first child text node (what you suggested) <xsl:value-of select="text()"/> 3) string-value of each child text node (the correct solution to Anthony's problem) <xsl:for-each select="text()"> <xsl:value-of select="."/> </xsl:for-each> -OR- <xsl:copy-of select="text()"/> Example (where the foo element is the current node in each of the above): <foo>The <bar>quick</bar> brown fox jumped <bat>over</bat> the lazy dog.</foo> #1 will produce "The quick brown fox jumped over the lazy dog." #2 will produce "The " #3 will produce "The brown fox jumped the lazy dog." As it happens, the example he gave would result in the difference of only one line break between #2 and #3, but the way he specified the problem indicated it was in fact #3 that he wanted. Hope this helps, Evan XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
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