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

RE: Re: Newbie - trying to extract specific values fro

Subject: RE: Re: Newbie - trying to extract specific values from XML file.
From: cknell@xxxxxxxxxx
Date: Fri, 19 Mar 2004 10:07:53 -0500
xsl template match specific value
Your description is very light on details and of a general nature, so in a general way, yes, it makes sense. On the other hand, I sense that you want specific advice which is impossible to give based on a general question.

The "best practice" approach to writing XSLT is to "apply-templates" at a point high in the document tree, usually something like this:

<xsl:template match="/">
  <xsl:apply-templates />
</xsl:template>

Then for each element you want to match, you write a template to output what you want as I illustrated in my replay. For those elements you wish to ignore, you write a template that outputs nothing, e.g. <xsl:template match="some-element-name-you-wish-to-ignore" />.

It may be helpful, if structure of your document permits, to write a single template to match an element such as your <Answer> element and put an <xsl:choose> element to discriminate between possible values. For example, instead of writing two templates as I did in my original answer, I might have done this:

<xsl:template match="Answer">
  <xsl:choose>
    <xsl:when test="@name='Female' and TFValue='false'">
      <!-- your output goes here -->
    </xsl:when>
    <xsl:when test="@name='ticdesc'">
      <xsl:value-of select="TextValue" />
    </xsl:when>
    <xsl:when test="another test goes here'">
      <!-- your output goes here -->
    </xsl:when>
    <xsl:otherwise>
      <!-- your default output goes here -->
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

but that is a little harder to understand, so I simplified it by making two templates.

More specific advice is not possible without a more specific question.
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     Julian Voelcker <asp@xxxxxxx>
Sent:     Fri, 19 Mar 2004 13:00:03 GMT
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  Re:  Newbie - trying to extract specific values from XML file.

Hi Charles,

> <xsl:template match="Answer[@name='Female']">
>   <!-- Your code here -->
> </xsl:template>
> 
> <xsl:template match="Answer[@name='ticdesc']">
>   <xsl:value-of select="TextValue" />
> </xsl:template>

OK, I see what you are doing.

Is it better to split each named item up into a different templates?

In most cases I need to either add the value of a named item to a page 
or check the value of a named item (e.g. Female) and then adjust the 
content accordingly.

Sometimes when I am checking the value of a named item it can result in 
large chunks of content being changed that will in turn include other 
named values.

Does this make sense?

-- 
Cheers,

Julian Voelcker
United Kingdom



 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.