|
Subject: Re: [xsl] grouping questions From: Xiang Li <lix@xxxxxxx> Date: Wed, 04 Aug 2004 14:36:40 EDT |
Hi, Mukul,
Thanks for your reply. I guess I did not explain the problem well in my
last message, actually i wanted to put togther row[Axis='c'] and
row[Axis='a'] according to their experimental conditions, so that i can use
their <length> values to do some calculations. and the grouping is done
within each <Sample> element.
so my output file should look like:
<root>
<Sample label="1">
<Record>
<Ratio_A_by_C>1.02</Ratio_A_by_C> <!--length of 'a' divided by length
of 'c' -->
<ExperimentalConditions>
<atmosphere>air</atmosphere>
<temperature>200K</temperature>
</ExperimentalConditions>
</Record>
<Record>
<Ratio_A_by_C>0.93</Ratio_A_by_C>
<ExperimentalConditions>
<atmosphere>air</atmosphere>
<temperature>400K</temperature>
</ExperimentalConditions>>
</Record>
<Record>
<Ratio_A_by_C>1.0</Ratio_A_by_C>
<ExperimentalConditions>
<atmosphere>Ar</atmosphere>
<temperature>200K</temperature>
</ExperimentalConditions>
</Record>
</Sample>
<Sample label="2">
<Record>
<Ratio_A_by_C>1.15</Ratio_A_by_C>
<ExperimentalConditions>
<atmosphere>air</atmosphere>
<temperature>200K</temperature>
</ExperimentalConditions>
</Record>
...
...
</Sample>
</root>
one additional problem is that the experimental condition tags
(temperature, are not always the same.
Appreciate your help!
Xiang
On Wed, 4 Aug 2004 09:33:24 -0700 (PDT) Mukul Gandhi wrote:
> Hi Xiang,
> Please try this XSL -
> (this is a Muenchian Grouping solution)
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:output method="text"/>
>
> <xsl:key name="by-row" match="row"
> use="concat(length,' ',Axis)" />
>
> <xsl:template match="/root">
> <xsl:for-each select="Record/row[generate-id(.) =
> generate-id(key('by-row', concat(length,'
> ',Axis))[1])]">
> Experiment (length=<xsl:value-of select="length"
> />,Axis=<xsl:value-of select="Axis"
> />)<xsl:text>
</xsl:text>
> <xsl:for-each select="key('by-row',
> concat(length,' ',Axis))">
> <xsl:for-each select="*[(name() != 'length')
> and (name() != 'Axis')]">
> <xsl:value-of select="name()"
> />=<xsl:value-of select="." />
> <xsl:if test="position() !=
> last()">,</xsl:if>
> </xsl:for-each>
> <xsl:text>
</xsl:text>
> </xsl:for-each>
> </xsl:for-each>
> </xsl:template>
>
> </xsl:stylesheet>
>
> I added a <root> tag at the begining to make the XML
> well formed.
>
> Hope I understood the problem correctly..
>
> Regards,
> Mukul
>
> --- Xiang Li <lix@xxxxxxx> wrote:
>
> > Hi,
> >
> > I have some problems in restructuring some data
> > files. what i have to do is
> > to group the measurements(<length>) of "a" and "c"
> > (<Axis>) together, so i
> > need to find what are the other tags in each row,
> > and read their values to
> > decide which ones belong to the same experiment.
> >
> > my xml file looks like this:
> >
> > <Record sample="1">
> > <row row_id='0'>
> > <length>5.4</length>
> > <Axis>a</Axis>
> > <Environment>air</Environment>
> > <Temperature>200K</Temperature>
> > </row>
> > <row row_id='1'>
> > <length>5.3</length>
> > <Axis>c</Axis>
> > <Environment>air</Environment>
> > <Temperature>200K</Temperature>
> > </row>
> > <row row_id='2'>
> > <length>5.0</length>
> > <Axis>a</Axis>
> > <Environment>air</Environment>
> > <Temperature>400K</Temperature>
> > </row>
> > <row row_id='3'>
> > <length>5.4</length>
> > <Axis>c</Axis>
> > <Environment>air</Environment>
> > <Temperature>400K</Temperature>
> > </row>
> > <row row_id='4'>
> > <length>5.4</length>
> > <Axis>a</Axis>
> > <Environment>Ar</Environment>
> > <Temperature>200K</Temperature>
> > </row>
> > <row row_id='5'>
> > <length>5.4</length>
> > <Axis>c</Axis>
> > <Environment>Ar</Environment>
> > <Temperature>200K</Temperature>
> > </row>
> > </Record>
> > <Record sample="2">
> > ...
> > </Record>
> >
> > Problem is, tags other than <length> and <Axis> vary
> > from sample to sample.
> > this seems like impossible for me to do the grouping
> > using xslt. Maybe some
> > gurus here can give me your brilliant ideas?...
> > thanks!!
> >
> > Xiang
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - 50x more storage than other providers!
> http://promotions.yahoo.com/new_mail
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] grouping questions, Mukul Gandhi | Thread | Re: [xsl] grouping questions, Mukul Gandhi |
| Re: [xsl] <META>-Tag, Agnes Kielen | Date | RE: [xsl] file_size_affecting_trans, juan valentín-pastra |
| Month |