|
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:
<fruits>
<fruit>apple</fruit>
<fruit>banana</fruit>
<fruit>
<fruit>pear</fruit>
<color>green</fruit>
</fruit>
<fruit>
<fruit>orange</fruit>
<color>orange</color>
</fruit>
</fruits>
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:
apple
banana
pear
green
orange
orange
------
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.
Regards,
/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: http://www.mulberrytech.com/xsl/xsl-list
>>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
--
"A smooth sea never made a skillful sailor."
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Selecting only one elemen, Michael Kay | Thread | Re: [xsl] Selecting only one elemen, Richard Lewis |
| [xsl] MySQL XML into SQL?, Ben Trafford | Date | Re: [xsl] Selecting only one elemen, JCS |
| Month |