Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Writing XSL expressions

From: Dreamweaver CS3 Beyond the Basics

Video: Writing XSL expressions

As we saw and previewed our styled RSS feed, we have fortunately articles appearing. So we want to trim that number down. To do that, we're going to need to write what's known as an XSL expression and XSL expressions use the x-path language to pass information into the XSL transformation. In this case, we want to pass into a don't display anymore than x number of articles. So we get to define that ourselves. We'll write an expression, which will look for a parameter, and then using the server transformation, we'll pass that parameter into it. So it's a two-step process. The first step is you write the expression in the XSL file and then you pass the parameter in using the server transformation.

Writing XSL expressions

As we saw and previewed our styled RSS feed, we have fortunately articles appearing. So we want to trim that number down. To do that, we're going to need to write what's known as an XSL expression and XSL expressions use the x-path language to pass information into the XSL transformation. In this case, we want to pass into a don't display anymore than x number of articles. So we get to define that ourselves. We'll write an expression, which will look for a parameter, and then using the server transformation, we'll pass that parameter into it. So it's a two-step process. The first step is you write the expression in the XSL file and then you pass the parameter in using the server transformation.

Go ahead and open up from our exercise files, the artnews.xsl file. Now again, Dreamweaver assist you in writing these expressions. So you don't feel like you are totally on your own when you are trying to write these expressions. Dreamweaver will give you a hand with them. So with the artnews.xsl file opened, I am going to click on the XSL for each tab up top. That is the Repeat Region behavior and it's the repeat region behavior that we need to modify. We only want it to repeat X number of times, so this is a perfect place to go ahead and write our expression. So we'll select that and then using the Properties inspector at the bottom, notice that it says select RSS channel item.

There is a nice little link underneath that that says how do I create XSL for each expression. So if you are brand new to this and you want to learn more about it, you can click on that, it will launch you help file and there are some step by step instructions. So let's click on the Lightning Bolt icon just the right of our selection text field and that will bring up the XPath Expression Builder for the repeat region. Now, rather than just hand-code this, which we could if we want to, we can go ahead and hand-code the expression if we are a little more experienced in building expressions. I am going to click on the Build Filter arrow and that opens up filter and again, there is a little help box says how do I create a filter? A filter is a way of building your expression step by step. So let's click the Plus icon because we want a new expression and when I click the Plus icon, I had the Item element selected and that's pretty important. So if you didn't have the Item element selected, just click Minus, select the item and then click the Plus again because we want to filter by item.

Now, it's asking us okay, where do you want to filter this? So I am going to select where it says Title and we can pass in anything if we want to that. So what I am going to pass in is the word Position and then open parenthesis and close parenthesis. Now, I need to pass in an operator and from the Operator pulldown menu, I am going to choose less than or equal to and then for Value, I am going to pass in dollar sign, capital I, Items, capital P, per capital P, page, dollar sign, items per page, and I will hit Tab.

Notice that it's building an expression for me down at the bottom. I am seeing position is less than or equal to items per page and this is actually a pretty simple statement if you think about this. We're saying, I want you to select an item from the RSS channel where the current position of the item is less than or equal to the items per page, now the items per page at the parameter that we're passing in. So if that number items per page is higher than the current position, it won't return a value and it will stop. So it will keep adding items from our RSS feed until that number has been reached and then it will stop. So go ahead and click OK, there is our expression.

Now, I am going to save this file and we could just go back into our news.php page and pass a parameter in but it's a good idea to go ahead and test this here to make sure it's working before you go back into your server behavior. So I am going to switch over to Code view because we tested it right now. It would return an error because that parameter is not defined. So we'll need to define this. We'll define this on a line just above the XSL template tag and that's all found on line 14 and line 15. So I am just going to create a blank line right above the XSL template tab and this is what we're going to write, type in XSL and then a colon with a P, your code your cursor will jump down the param, so you want to type in param. After space, type in name equals, and then make the value equal to items per page and then the next attribute you want to pass in a default value and we'll type in select 8.

So we'll limit our initial test to 8 articles and go ahead and do a self closing tag at the end of that which is space, forward slash and then the closing angled bracket. So we will go ahead and save that and test this in our browser and I can count one, two, three, four, five, six, seven, eight articles, exactly the number that I was expecting. So let's close now Firefox, go back into Dreamweaver and now I can close my XSL file and remember this is a two-step process, so we've completed the first step.

The next and final step is to go into our news.php and modify our server behavior so that parameter is passed into our XSL transformation. So we do that by going over to our Sever Behaviors and we find the one server behavior that we have which is our XSL transformation and go ahead and double-click that. That will bring up the same dialog box we saw earlier where we created our XSL transformation. Notice that the XSL parameters instead of being grayed out is now highlighted so that we can select it. Now that's because there is an expression in the XSL transfer sheet that is expecting a parameter.

So I am going to click the Plus icon to add a value and we know that our value is going to be Items Per Page and I am just going to pass an initial value of 4. You could choose a default value if you like. If you hit Tab, notice the default value becomes 4. You can actually make the value dynamic as well. So maybe you had some other things going on and maybe you had a user interaction that said I want to display 5 articles per page or I want to display 10 articles per page. You could have that value be dynamic and then you could set a default value so that if a choice wasn't made, it would show you the default number of articles.

So I will go ahead and click OK, click OK again. I will save my page and I will test it. It's going to prompt you again if you want to update it on a testing server and it's also going to prompt you if you want any dependent files to be uploaded. We do need to upload our dependent files because we've changed our XSL file, so I am going to choose Yes, it will upload them and now in the browser, I can see my RSS feed and I am limited to 4 articles and that's a lot easier to digest than 20 or so articles that we had before. So that's exactly what we want.

So we've seen that XSL can transform content not only on the browser or client side, but also on the server side as well. We've formatted an RSS feed, we've taken raw XML data and placed it on our page and converted it to XHTML. I hope this gives you a starting point for working with your own XML data or formatting your own RSS feeds. Dreamweaver offers us a wide variety of tools and behaviors to help make styling our XML files easy and efficient.

Show transcript

This video is part of

Image for Dreamweaver CS3 Beyond the Basics
Dreamweaver CS3 Beyond the Basics

102 video lessons · 38687 viewers

James Williamson
Author

 
Expand all | Collapse all
  1. 2m 3s
    1. Welcome
      1m 17s
    2. Using the exercise files
      46s
  2. 1h 23m
    1. Reviewing the Coding toolbar
      8m 42s
    2. Customizing the Coding toolbar
      9m 52s
    3. Taking advantage of Code Hinting
      7m 20s
    4. Using snippets and shortcuts
      11m 10s
    5. Using the Quick Tag Editor
      5m 18s
    6. Using Find and Replace
      9m 50s
    7. Regular expressions
      5m 39s
    8. Using Bridge with Dreamweaver CS3
      8m 28s
    9. Round-trip editing with Photoshop CS3
      3m 40s
    10. Leveraging image variables in Photoshop CS3
      7m 32s
    11. Integrating external variables into your workflow
      6m 16s
  3. 37m 26s
    1. Understanding the CSS Styles panel
      7m 59s
    2. Understanding the Cascade
      5m 50s
    3. Understanding Inheritance
      5m 8s
    4. Understanding Specificity
      7m 5s
    5. Managing CSS styles
      5m 4s
    6. Using Design-Time style sheets
      6m 20s
  4. 2h 19m
    1. Using the new CSS template pages
      5m 59s
    2. Understanding DIV tag structure and layout
      12m 0s
    3. Understanding the CSS box model
      10m 0s
    4. Using absolute and relative positioning
      8m 35s
    5. Understanding floating elements
      7m 9s
    6. Clearing floats
      7m 19s
    7. Using floats to control page layout
      3m 45s
    8. Building structure and assigning IDs
      10m 19s
    9. Applying basic styling to structured content
      11m 14s
    10. Positioning container elements
      11m 4s
    11. Enhancing layouts with background graphics
      11m 48s
    12. Creating faux columns with background graphics
      8m 55s
    13. Creating rounded corners with background graphics
      9m 17s
    14. Building navigation with CSS
      16m 57s
    15. Using Dreamweaver's Browser Check feature
      5m 31s
  5. 53m 22s
    1. Creating properly structured forms
      6m 30s
    2. Creating accessible forms
      6m 41s
    3. Using CSS to lay out form structure
      7m 40s
    4. Creating vertical columns for form elements
      7m 48s
    5. Adding user feedback
      5m 52s
    6. Applying advanced styling to forms
      8m 11s
    7. Client-side form validation
      4m 17s
    8. Validating forms with the Spry Validation tools
      6m 23s
  6. 1h 20m
    1. Understanding the Spry framework
      3m 43s
    2. Defining a data source for use in Spry
      3m 56s
    3. Creating a Spry table
      8m 8s
    4. Using the Spry widgets
      8m 11s
    5. Connecting various data sets
      4m 50s
    6. Understanding Spry widget structures
      7m 1s
    7. Applying custom styles to Spry widgets
      6m 24s
    8. Applying additional custom styles to Spry widgets
      8m 46s
    9. Controlling Spry widget behaviors with JavaScript
      6m 0s
    10. Controlling Spry widget animations with JavaScript
      9m 31s
    11. Creating effects with Spry behaviors
      4m 42s
    12. Hand-coding Spry
      9m 11s
  7. 1h 11m
    1. Creating a base template
      8m 6s
    2. Creating editable attributes
      6m 26s
    3. Creating a new page from a template
      7m 42s
    4. Applying a template to an existing page
      4m 36s
    5. Creating nested templates
      5m 24s
    6. Using repeating regions
      6m 34s
    7. Creating editable and non-editable optional regions
      6m 0s
    8. Using template parameters
      7m 26s
    9. Using template expressions
      9m 59s
    10. Using conditional template expressions
      8m 54s
  8. 54m 40s
    1. Examining XML structure
      2m 44s
    2. Creating an XML document
      9m 9s
    3. Using the CDATA structure
      5m 7s
    4. Creating an XSLT file
      4m 33s
    5. Binding data from an XML to an XSLT document
      5m 6s
    6. Inserting repeating regions into an XSL document
      5m 16s
    7. Creating a client-side XSL transformation
      2m 52s
    8. Styling a remote RSS feed
      7m 29s
    9. Creating a server-side XSL transformation
      5m 31s
    10. Writing XSL expressions
      6m 53s
  9. 1h 2m
    1. Overview of building dynamic websites
      1m 35s
    2. Installing PHP, MySQL, and Apache on Mac
      3m 22s
    3. Installing PHP, MySQL, and Apache on Windows
      3m 54s
    4. Creating a MySQL database
      3m 16s
    5. Defining a testing server and database bindings
      6m 14s
    6. Creating a database recordset
      4m 35s
    7. Adding dynamic content to the page
      5m 14s
    8. Creating repeating regions of dynamic content
      7m 6s
    9. Filtering database records
      7m 39s
    10. Using the Live Preview
      10m 22s
    11. Passing URL parameters
      4m 23s
    12. Dynamically generating links
      5m 18s
  10. 57m 9s
    1. Understanding behaviors
      5m 16s
    2. Installing additional behaviors
      3m 39s
    3. Planning to create a custom behavior
      3m 42s
    4. Examining existing behaviors
      5m 32s
    5. Building a behavior function
      7m 23s
    6. Creating an Action file
      6m 48s
    7. Enabling behavior functions
      9m 1s
    8. Initializing the user interface for a behavior
      3m 9s
    9. Loading behaviors in Dreamweaver
      6m 47s
    10. Testing and debugging behaviors
      5m 52s
  11. 27m 12s
    1. Running reports
      7m 41s
    2. Checking and validating links
      3m 40s
    3. Using cloaking
      5m 42s
    4. Using Check In/Check Out
      4m 3s
    5. Using Design Notes
      6m 6s
  12. 20s
    1. Goodbye
      20s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now "Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Dreamweaver CS3 Beyond the Basics.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.