[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Help on node selection


Subject: RE: [xsl] Help on node selection
From: "Fabien Tillier" <f.tillier@xxxxxxxx>
Date: Fri, 27 Aug 2010 14:19:29 +0200

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.j.welch@xxxxxxxxx]
Envoyi : vendredi 27 ao{t 2010 13:53
@ : xsl-list@xxxxxxxxxxxxxxxxxxxxxx
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.j.welch@xxxxxxxxx]
> Envoyi : vendredi 27 ao{t 2010 13:45
> @ : xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> 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
>
>



--
Andrew Welch
http://andrewjwelch.com


Current Thread
Keywords