[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] 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
|