Home arrow XML arrow Page 3 - An Introduction to XSLT
XML

An Introduction to XSLT


XSLT allows you to create formatting structures which interpret and modify the existing XML elements. Learn about the syntax of XSLT elements, how the namespace attribute differs depending on the browser in use, and how to transform original XML elements.

Author Info:
By: Dan Wellman
Rating: 4 stars4 stars4 stars4 stars4 stars / 14
September 20, 2004
TABLE OF CONTENTS:
  1. · An Introduction to XSLT
  2. · Create Elements to Apply the Transformations
  3. · Another Template
  4. · Discussion of the Output
  5. · Page Masters
  6. · Block Level Elements

print this article
SEARCH DEVARTICLES

An Introduction to XSLT - Another Template
(Page 3 of 6 )

We start another template that looks for children of the <article> element. We'll now use another XSL element, the for-each element:

<xsl:for-each select="headline">
  <B><xsl:value-of/></B><BR/>
</xsl:for-each>

This template looks for elements that match <headline> and then copies their content, makes them bold and adds a line-break. We then need another for-each template to match any <story> patterns:

<xsl:for-each select="story">
  <xsl:value-of/><BR/>
</xsl:for-each> 
 
This time, we don't want the contents made bold, but we can still include a line-break. Now we just close the template and the root element:

  </xsl:template>
</xsl:stylesheet>

That's it, as far as the stylesheet goes. Save the file as style.xls in the same folder as your XML file. For reference, the whole stylsheet should look like this:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
    <Html>
 <Head>
   <Title>News</Title>
 </Head>
 <Body>
   <CENTER><H1>Todays News</H1></CENTER><BR/>
   <xsl:apply-templates select="news/article"/>
 </Body>
    </Html>
  </xsl:template>
  <xsl:template match="article">
    <xsl:for-each select="headline">
 <B><xsl:value-of/></B><BR/>
    </xsl:for-each>
    <xsl:for-each select="story">
      <xsl:value-of/><BR/>
    </xsl:for-each> 
  </xsl:template>
</xsl:stylesheet>

Before this will actually work, you need to link the XLST file to the existing XML file, to do this, open the original XML file (news.xml if you're following on from the previous article) and add the following line of code directly below the XML declaration at the top:

<?xml-stylesheet type="text/xsl" href="style.xsl"?>

Now save this file with the name transformedNews.xml and then open it in a browser.  You should see a page with the Today's News heading at the top of the page, and the two news stories with their associated headings below this.  If you open the XSL file, it will look very similar to a flat XML file, with the declaration and tags in blue and the elements in red.  Additionally, XSLT elements will appear in a nice shade of purple. 


blog comments powered by Disqus
XML ARTICLES

- Open XML Finally Supported by MS Office
- XML Features Added to Two Systems
- Using Regions with XSL Formatting Objects
- Using XSL Formatting Objects
- More Schematron Features
- Schematron Patterns and Validation
- Using Schematron
- Datatypes and More in RELAX NG
- Providing Options in RELAX NG
- An Introduction to RELAX NG
- Path, Predicates, and XQuery
- Using Predicates with XQuery
- Navigating Input Documents Using Paths
- XML Basics
- Introduction to XPath

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 
Support 

Developer Shed Affiliates

 




© 2003-2017 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials