[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: selecting a node without its children
Scott Zarecor wrote: > ...Here's what my XML looks like: > <task> > <author>Scott Zarecor</author> > <date>03/27/00</date> > The text of the task would go here... > </task> > Using '<xsl:apply-templates select="text()"/>' and other variations upon the > 'text()'-theme (with Xalan) returns the contents of the child nodes as well > as the text I'm actually after. Any ideas? > ~Scott Are you using the 1.0.0 release of Xalan? When the current node is <task>, <xsl:apply-templates select="text()"/> should select only the text nodes, including the interstitial ones before and after <author>. Mind you, my test had a template with match="*" so I could catch child elements separately from the text nodes. This should work equally well with <xsl:for-each select="text()"/> if you don't want a separate template and shifting context. The remark about interstitial text nodes leads to a warning that the design you seem to be using makes it hard to grab the "text of the task" readily. If you can change this design, either of the following is better XML (IMHO): 1. Wrap the "text of the task" in a <description> element. 2. Make the text be the only content of <task>, moving author and date to attributes of <task>. I'll espouse the principle that content you wish to process should be isolated as an attribute value or text content that is not intermixed with children. Right now, the human-language way to express the location of the task description is: the one text node inside <task> that's not just whitespace. That gets awkward. .................David Marston 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
|