|
Subject: RE: Re: [xsl] Newbie - trying to extract specific values from XML file. From: cknell@xxxxxxxxxx Date: Fri, 19 Mar 2004 10:07:53 -0500 |
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: [xsl] 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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] getting the namespace pre, Andrew Welch | Thread | Re: [xsl] Newbie - trying to extrac, Julian Voelcker |
| Re: [xsl] breaking up a big xml fil, David Carlisle | Date | Re: [xsl] Editor Tool and XSL, Eliot Kimber |
| Month |