xsl-list
[Top] [All Lists]

RE: [xsl] Help on node selection

2010-08-27 07:18:12
Well, it is not what I want. The XML is a lot more complex
That's why I didn't put an output at first...
I want to know the syntax to call a template with a list of nodes, based on a 
criteria.

I will probably have several templates, like

<xsl:template match="data/row[N1=1]">

</xsl:template>

<xsl:template match="data/row[N1=2]">

</xsl:template>

To be able to handle this level (N1), then, once I get all nodes which match 
the N1=1 clause (or any number than 1), I will have to call other templates to 
generate several tables for the node group I get.
I know it is unclear...
I want to treat all nodes which have a certain criteria (like N1=1) in a 
template (and by all, I mean, call once the template with all matching nodes). 
Then treat them again in another template to generate another set of tables, 
and so on...
Ideally, the XSL template will be built based on an XML file which gave, for 
each criteria (like N1=1) the tables which have to be built, and on which other 
criteria (like only for N2=120...).

Thus, it is not really good XSL as the treatment will not be in document 
order...
Sorry for being thick...

Regards,
Fabien




-----Message d'origine-----
De : Andrew Welch [mailto:andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com] 
Envoyé : vendredi 27 août 2010 13:53
À : xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Objet : Re: [xsl] Help on node selection

<N1>120,120,110</N1>
<N2>120,120</N2>

<xsl:template match="data">
  <N1><xsl:value-of select="string-join(row[N1 eq '1']/N2, ', '))"/></N1>
  <N2><xsl:value-of select="string-join(row[N1 eq '2']/N2, ', '))"/></N2>
</xsl:template>


-----Message d'origine-----
De : Andrew Welch [mailto:andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com]
Envoyé : vendredi 27 août 2010 13:45
À : xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Objet : Re: [xsl] Help on node selection

My question is pretty basic, so far.

Suppose I get an XML document

<data>
     <row>
                     <N1>1</N1>
     <N2>120</N2>
     </row>
     <row>
                     <N1>1</N1>
     <N2>120</N2>
     </row>
     <row>
                     <N1>2</N1>
     <N2>120</N2>
     </row>
     <row>
                     <N1>2</N1>
     <N2>120</N2>
     </row>
     <row>
                     <N1>1</N1>
     <N2>110</N2>
     </row>
</data>
...
Is called on each matching node...(thus 3 times here), rather than once, and 
then gets some loop to individually treat each node from the list.
How can I proceed ?

You need to provide the expected output for that input...


--
Andrew Welch
http://andrewjwelch.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





-- 
Andrew Welch
http://andrewjwelch.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--