Re: [xsl] Selecting only one element using templates

Subject: Re: [xsl] Selecting only one element using templates
From: JCS <subscriber@xxxxxxxxxxxxx>
Date: Tue, 02 Dec 2003 01:59:37 +1300
Hi Michael,

Thanks for your reply. I'm sorry if my question is a bit vague--like I said,
I'm new to XSL/T, so I'm not sure how to explain some of the problems I'm
having in technical terms yet. Community patience is appreciated. :-)

Basically my XML data structure allows elements to contain data or other
elements, like so:


Here a fruit element can contain the name of the fruit or the elements for
fruit and fruit color.

I just wanted to select the fruit name using templates, but if I did this:

<xsl:templates match="fruit">

I get all fruit nodes(term?) and also the colors as well. So my output was:





I posted the solution in my previous reply to this thread topic. My main
question, repeated, is why do all the nodes get output if I haven't
specified a template? I'm not sure if that question makes sense to advanced
users. I suppose I'm used to procedural programming where nothing gets
output unless I specify what needs to be output. In XSL, it seems that
although I think I'm being specific in my template matching, it will return
the child elements as well, which, right now, is only starting to make sense
to me but I'm still a little fuzzy about it.


/johnny :)

On 2/12/03 1:37 AM, "Michael Kay" <mhk@xxxxxxxxx> wrote:

> Sorry, don't understand the question. You say you "just want to select
> the <name> node". But there are five nodes called <name> in your
> example. What output are you trying to produce?
> Michael Kay
>> -----Original Message-----
>> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of JCS
>> Sent: 01 December 2003 09:00
>> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>> Subject: [xsl] Selecting only one element using templates
>> Hello,
>> I'm new to XSL/T and I've been reading the list archives, the
>> tutorials available in and around the net, etc., but I can't
>> seem to find an answer to a simple question (which is usually
>> the case with simple "abstract"
>> questions) so I hope nobody minds if I ask here.
>> I've got an XML structure as so:
>> <name></name>
>> <name></name>
>> <name>
>>  <name></name>
>>   <list>
>>   <item></item>
>>   <list>
>> </name>
>> <name></name>
>> Now, I've been able to get at what I want using the examples
>> provided by this list, so I'm not having difficulty with the
>> more intermediate steps, however, I'm having difficulty
>> getting my head this:
>> What if I just want to select the <name> node? If I use
>> <xsl:apply-templates/> and select "name" I get all name
>> elements, plus the item element which I don't want. I just
>> want a list of names from the name elements.
>> Do I have to specify a template for each element in an XML
>> document? That seems rather tedious, especially if I have a
>> lot of elements within <name> elements used as containers.
>> Any help is appreciated,
>> TiA,
>> /johnny :)
>> -- 
>> "I'm not normally a praying man, but if you're up there
>> please save me Superman!"
>> Homer Simpson
>>  XSL-List info and archive:
> XSL-List info and archive:

"A smooth sea never made a skillful sailor."

 XSL-List info and archive:

Current Thread