[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: XML and XSLT

Subject: RE: XML and XSLT
From: Matt.Varney@xxxxxxxxx
Date: Thu, 2 Mar 2000 17:01:33 -0500
matt varney
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.