Using XML and XSLT to Personalize a Web Site Part 1: Using XSLT to Transform XML to HTML
- Nov 2, 2001
You might assume that adding the word "personalization" to your Web site means adding a digit or two to your budget, but it doesn't have to be that way. Personalization means creating a Web site that adjusts to your visitors' preferences and interests, and to some extent, you can accomplish this with XML and XSL Transformations.
This article is the first in a series that describes the process of creating a personalized Web site that allows the user to choose first the look and feel of the Web site, and then choose the choice and arrangement of content that appears on the site's home page. In this article, we will lay the groundwork, providing you with an idea of how this is accomplished and the tools and technologies you will need.
The Basic Idea
You may already be familiar with the way that Cascading Style Sheets (CSS) can be used to change the look and feel of your Web site. With CSS, you specify the way that you want certain items to look by creating styles for classes of items, or even for specific HTML tags. Changing the site's look and feel means simply changing the style sheet. The browser then carries the changes through to each affected page. In this way, the same HTML page can look profoundly different, depending on the style sheet chosen.
This is certainly handy, but limited in terms of what you can actually accomplish. For example, although colors, fonts, and sizes can be changed, it would be difficult to use a Cascading Style Sheet to control the actual layout of the page.
Extensible Stylesheet Language Transformations, or XSLT, solve this problem. You can use XSLT to turn an XML file into an HTML page; and by changing the XSLT style sheet, a single XML file can take on many different looks. Information can even be included or excluded, depending on the style sheet.
In these articles, we will discuss ways to allow users to choose the look and feel (as well as the content and layout) of their pages by indicating their preference for a particular style sheet or group of style sheets.