Subject: RE: XML and XSLT From: Matt.Varney@xxxxxxxxx Date: Thu, 2 Mar 2000 17:01:33 -0500 |
Also, Mike (and All), I AM using the un-REAL XML parser (the MSXML...). Sorry for not specifying earlier. How does this fact change the syntax of the templates? Thanks Matt -----Original Message----- From: Mike Brown [mailto:mbrown@xxxxxxxxxxxxx] Sent: Thursday, March 02, 2000 3:36 PM To: 'xsl-list@xxxxxxxxxxxxxxxx' Cc: 'Matt.Varney@xxxxxxxxx' Subject: RE: XML and XSLT > I would like to use XSTL to transform one XML doc [...snip...] > > <dsobjects> > <prop> > <title>President's Office Staff</title> > <summary>Financial Reports for President's Office > Staff</summary> > </prop> > <prop> > <title>VP of Finance</title> > <summary>Financial Reports for VP of Finance</summary> > </prop> [...snip...] > <dsobjects> > > <dsobjects> > <dsobject type="Collection" handle="Collection-100"> > <prop> > <title>President's Office Staff</title> > <summary>Financial Reports for > President's Office > Staff</summary> > </prop> > </dsobject> [...snip...] > </dsobjects> Sorry to nitpick, but... 1. it's XSLT, not XSTL. 2. XSLT reads from and creates intangible node trees that *may* (and usually are) derived from literal XML documents, and *may* emit the new tree as an XML document, but you will get in trouble if you think of it as a language that acts directly on documents themselves. 3. you didn't mention which XSL processor you are using, a cardinal sin on this list due to the differences between the language-known-as-xsl-in-ie5 and real XSLT. If you're using real XSLT, the answer will probably have these templates in it: <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="*"> <!-- for any element not otherwise matched, copy it --> <xsl:copy> <!-- add to copied element its attributes and children --> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="prop"> <!-- make a number for this 'prop' element --> <xsl:variable name="propnum"> <xsl:number level="any"/> </xsl:variable> <!-- make a 'dsobject' element with a fixed attribute --> <dsobject type="Collection"> <!-- generate its variable attribute --> <xsl:attribute name="handle"> <xsl:value-of select="concat('Collection-',string(100 + number($propnum)))"/> </xsl:attribute> <!-- add to 'dsobject' a child 'prop' --> <xsl:copy> <!-- add to 'prop' its attributes and children --> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </dsobject> </xsl:template> 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 -> |
---|---|---|
RE: XML and XSLT, Matt . Varney | Thread | Re: XML and XSLT, David Carlisle |
RE: XML and XSLT, Matt . Varney | Date | RE: Repetition without a repeated s, Rakesh Ajmera |
Month |