This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Re: Newbie question--applying templates, selecting paragraphs - SOLVED!!
- From: "David N Bertoni/Cambridge/IBM" <david_n_bertoni at us dot ibm dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Fri, 24 May 2002 11:42:30 -0700
- Subject: Re: [xsl] Re: Newbie question--applying templates, selecting paragraphs - SOLVED!!
- Reply-to: xsl-list at lists dot mulberrytech dot com
> The file below, adjusted per your recommendations, worked!! :) Thank you
so
> much.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xhtml="http://www.w3.org/1999/xhtml"
> version="1.0">
> <xsl:output method="xml" encoding="UTF-8"/>
> <xsl:template match="*|@*|text()|comment()">
> <xsl:copy>
> <xsl:apply-templates
> select="*|@*|text()|comment()"/>
> </xsl:copy>
> </xsl:template>
> <xsl:template match="xhtml:div[@class='mgronly']"/>
> </xsl:stylesheet>
>
> May I ask one more question that will hopefully help me understand more
> about XSL? I understand now why the xhtml namespace is necessary. But I
> don't understand why adding the second template worked. If the first one
> says "copy everything," the second one must somehow override or modify
the
> first. But syntactically, I don't see how that is accomplished.
xsl:copy does not make a deep copy, it only copies the current node. The
xsl:apply-templates element with the xsl:copy recursively processes any
descendants. The second template is more specific, and therefore, has a
higher default priority, so it is chosen rather than the first one, if it
matches the current node. For more info, see:
http://www.w3.org/TR/xslt#conflict
Is there some reason you're not just using the expression "node() | @*",
instead of "*|@*|text()|comment()"? Are you excluding processing
instructions on purpose?
Dave
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list