Subject: RE: [xsl] apply-templates and XHTML's <p> tag From: "Michael Kay" <mhk@xxxxxxxxx> Date: Mon, 24 Mar 2003 21:15:45 -0000 |
The standard design pattern is to define a template rule for each element, and in each such template rule, call apply-templates to process the children. That way you do a depth-first traversal of the entire tree, processing each element as it is encountered. If the source format is similar to the result format, you define an identity template rule as the default rule, so things just get copied across. For example <xsl:template match="bold"> <b><xsl:apply-templates/></b> </xsl:template> processes the <bold> element, replacing it with a <b> element, and calling apply-templates to process all its children (text nodes and element nodes) with their appropriate rules. You don't ever need to use xsl:value-of, and normally you shouldn't use it except when processing a node that you know has no children. Michael Kay > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Gan Uesli Starling > Sent: 24 March 2003 18:00 > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] apply-templates and XHTML's <p> tag > > > This would be none too hard in Perl. But I am stumped > for it in XSLT. When one does... > > <xsl:apply-templates select="foo"/> > > ...XSLT seeks out and does all the <foo> tags > and inflicts the foo template to them. I get that. > > But when parsing an XHTML <p> tag, it may > have text mish-mashed in and between <b> and <i> > and <span> tags...in no fixed order. > > I will lose all the style stuff if I just do... > > <xsl:template match="p"> > <xsl:value-of select="."/> > </xsl:template> > > ...as the <b>, <i> and <span> will go bye-bye with > all their text siphoned out from them, yes? I don't > want that, obviously. > > Cool would be to split <p> into a sequence of <foo> > tags with the <b> and <i> as attributes for some, > not on others. > > Can someone point me at a tutorial or how-to which > illustrates an XSLT-ish method for dealing sequentially > with a mixed bunch of text and tags? > > Thanks, > > Gan > -- > > Mistera Sturno - Rarest Extinct Bird > > <(+)__ Gan Uesli Starling > ((__/)=- Kalamazoo, MI, USA > `||` > ++ http://starling.us > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Re: apply-templates and XHTML, Dimitre Novatchev | Thread | RE: [xsl] apply-templates and XHTML, Passin, Tom |
RE: [xsl] apply-templates and XHTML, Passin, Tom | Date | [xsl] Schema to WSDL, Carlos Sanchez |
Month |