RE: Process some elements, but not others...
Ted Stresen-Reuter wrote: > I've tried a variety of variations on the procedure you suggest, but it > just doesn't seem to work, so, I'm reposting the question with a little > better example... > > Sample XML > <HtdigAttributes> > <attribute name="accents_db" type="string_list" programs="htdig"> > <example>search_algorithm, search_results_header</example> > <description> > <p>bla bla bla bla bla bla <strong>bla bla</strong> bla > bla bla <em>bla</em></p> > <p>bla bla <ref>bla</ref> bla, bla!</p> > </description> > </attribute> > </HtdigAttributes> > > Sample XSL > <xsl:output method="xml" > > doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > doctype-public="-//W3C/DTD XHTML 1.0 Transitional//EN" indent="yes" > encoding="ISO-8859-1" /> > > <xsl:template match="/"> > <xsl:apply-templates /> > </xsl:template> > > <xsl:template match="HtdigAttributes"> > <xsl:apply-templates select="attribute" /> > </xsl:template> > > <xsl:template match="attribute"> > <!-- we do a bunch of fun transofrmations here --> > <xsl:value-of select="@name" /> > <xsl:value-of select="@type" /> > <!-- would like to have the value of the description node here, but > with all HTML elements left in tact and all "ref" elements transformed > --> > </xsl:template> > > Any suggestions on changes that would make your suggestion work in this > context? There have been at least a couple of examples posted that, were you to add them at the point of your last comment, would be a starting point to a solution. The thing that is missing here (and has been missing from the beginning, at least for me) is the desired output. Specifically, into **what form** do you to wish to transform the <ref> elements? Without that info I could not do much more than what others have already posted. But that's never stopped me before!! Here is an attempt on my part, starting with the last template you wrote and moving forward. ================================= <xsl:template match="attribute"> <!-- we do a bunch of fun transofrmations here --> <xsl:value-of select="@name" /> <xsl:value-of select="@type" /> <!-- would like to have the value of the description node here, but with all HTML elements left in tact and all "ref" elements transformed --> <xsl:apply-templates select="description"/> </xsl:template> <xsl:template match="description"> <xsl:apply-templates/> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="ref"> <!-- (: Oh won't you do, that voodoo, that you do, so well! :) --> </xsl:template> ================================= This is all untested code, "off the top of my head". As such it may contain syntax errors. But you should be able to get the general idea of what to do from this. I hope this is helpful! -- Roger Glover glover_roger@xxxxxxxxx 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