I have an XSLT transformation that I can't seem to figure out. The original xml:
<DataSet ID="-5480">
<ObsGroup>
<ClsItem name="AGE">2099</ClsItem>
<ClsItem name="MARITAL_STATUS">3</ClsItem>
<ParItem name="UNEMPLOYMENT_RATE">23.34</ParItem>
<ParItem name="LABFORCE_FULL_TIME">2292.7071594375</ParItem>
<TimeItem name="TIME_CODE">2447</TimeItem>
</ObsGroup>
<ObsGroup>
<ClsItem name="AGE">2099</ClsItem>
<ClsItem name="MARITAL_STATUS">3</ClsItem>
<ParItem name="UNEMPLOYMENT_RATE">23.66</ParItem>
<ParItem name="LABFORCE_FULL_TIME">2300.72108466884</ParItem>
<TimeItem name="TIME_CODE">2451</TimeItem>
</ObsGroup>
<ObsGroup>
<ClsItem name="AGE">2099</ClsItem>
<ClsItem name="MARITAL_STATUS">4</ClsItem>
<ParItem name="UNEMPLOYMENT_RATE">23.77</ParItem>
<ParItem name="LABFORCE_FULL_TIME">2353.4791599122</ParItem>
<TimeItem name="TIME_CODE">2447</TimeItem>
</ObsGroup>
<ObsGroup>
<ClsItem name="AGE">2099</ClsItem>
<ClsItem name="MARITAL_STATUS">4</ClsItem>
<ParItem name="UNEMPLOYMENT_RATE">23.88</ParItem>
<ParItem name="LABFORCE_FULL_TIME">2335.71727933868</ParItem>
<TimeItem name="TIME_CODE">2451</TimeItem>
</ObsGroup>
</DataSet>The desired output:
<DataSet>
<Series>
<SeriesKey>
<Value concept="MEASURES" value="UNEMPLOYMENT_RATE"/>
<Value concept="AGE" value="2099"/>
<Value concept="MARITAL_STATUS" value="3"/>
</SeriesKey>
<Obs>
<Time>2447</Time>
<ObsValue value="23.34"/>
</Obs>
<Obs>
<Time>2451</Time>
<ObsValue value="23.66"/>
</Obs>
</Series>
<Series>
<SeriesKey>
<Value concept="MEASURES" value="LABFORCE_FULL_TIME"/>
<Value concept="AGE" value="2099"/>
<Value concept="MARITAL_STATUS" value="3"/>
</SeriesKey>
<Obs>
<Time>2477</Time>
<ObsValue value="2292.7071594375"/>
</Obs>
<Obs>
<Time>2451</Time>
<ObsValue value="2300.72108466884"/>
</Obs>
</Series>
<Series>
<SeriesKey>
<Value concept="MEASURES" value="UNEMPLOYMENT_RATE"/>
<Value concept="AGE" value="2099"/>
<Value concept="MARITAL_STATUS" value="4"/>
</SeriesKey>
<Obs>
<Time>2447</Time>
<ObsValue value="23.77"/>
</Obs>
<Obs>
<Time>2451</Time>
<ObsValue value="23.88"/>
</Obs>
</Series>
<Series>
<SeriesKey>
<Value concept="MEASURES" value="LABFORCE_FULL_TIME"/>
<Value concept="AGE" value="2099"/>
<Value concept="MARITAL_STATUS" value="4"/>
</SeriesKey>
<Obs>
<Time>2447</Time>
<ObsValue value="2353.4791599122"/>
</Obs>
<Obs>
<Time>2451</Time>
<ObsValue value="2335.71727933868"/>
</Obs>
</Series>
</DataSet> I have tried several different methods, in particular the muenchian method of grouping but I don't really understand how I can use several of the same type to group by.
The general concept is: For each group of ClsItem's with the same value, and for each ParItem pertaining to that group, list all observations of that paritem (using time as the series). I can add more info if required.




Help






