Subject: RE: [xsl] convert nested elements, ID's and classes to CSS declaration From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 21 Mar 2007 17:24:46 -0000 |
> I searched for this all over and couldn't find a solution. I > want to take the following XML: > > <root> > <file> > <element/> > </file> > <file id="a"> > <element id="a"/> > </file> > <file class="b"> > <element class="b"/> > </file> > <file id="c" class="d" not="1" this="2"> > <element id="c" class="d" not="1" this="2"/> > </file> > </root> > > > #### and output something this #### > > > root > root file > root file element > root file #a > root file #a element #a > root file .b > root file .b element .b > root file #c .d > root file #c .d element #c .d > XSLT 1.0 or 2.0? Here's a 2.0 solution, untested: <xsl:template match="*"> <xsl:apply-templates select="ancestor-or-self::*/(.|@class|@id)" mode="token"/> <xsl:text>
</xsl:text> </xsl:template> <xsl:template match="*" mode="token"> <xsl:value-of select="concat(name(), ' ')"/> </xsl:template> <xsl:template match="@class" mode="token"> <xsl:value-of select="concat('.', ., ' ')"/> </xsl:template> <xsl:template match="@id" mode="token"> <xsl:value-of select="concat('#', ., ' ')"/> </xsl:template> Michael Kay http://www.saxonica.com/ > > #### ignoring any attributes that are not "id" or "class" and > containing all ancestor elements and id's and classes no > matter what the element name is or how many levels deep. I'd > like to use this for auto generating CSS declarations from > XHTML snipits, I can deal with removing redundant rows > manually. Below is the closest I've gotten which only strips > the XML to the elements and attributes I'm interested in, but > doesn't format it or list ancestor elements, id's and classes > (I'm a beginner at XSLT) thanks! #### > > > <xsl:template match="node()|@id|@class"> <xsl:copy> > <xsl:apply-templates select="node()|@id|@class"/> </xsl:copy> > </xsl:template> > > > > > > > ______________________________________________________________ > ______________________ > We won't tell. Get more on shows you hate to love (and love > to hate): Yahoo! TV's Guilty Pleasures list. > http://tv.yahoo.com/collections/265
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Question Regarding the di, David Carlisle | Thread | Re: [xsl] convert nested elements, , Jay Bryant |
Re: [xsl] Question Regarding the di, Steve | Date | Re: [xsl] From WordprocessingML inl, Yves Forkl |
Month |