|
Subject: XSLT: Restructuring/Grouping From: Wolfgang May <may@xxxxxxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 4 Mar 2000 19:45:39 +0100 (MET) |
Hi,
I want to "group" elements by one of their attributes, e.g.,
<org id="org-WEU">
<name>Western European Union</name>
<abbrev>WEU</abbrev>
<member type="member" ref="Greece"/>
<member type="member" ref="France"/>
<member type="member" ref="Spain"/>
<member type="member" ref="Germany"/>
<member type="member" ref="Italy"/>
<member type="member" ref="Belgium"/>
<member type="member" ref="Luxembourg"/>
<member type="member" ref="Netherlands"/>
<member type="member" ref="Portugal"/>
<member type="member" ref="United-Kingdom"/>
<member type="associate member" ref="Turkey"/>
<member type="associate member" ref="Norway"/>
<member type="associate member" ref="Iceland"/>
<member type="observer" ref="Austria"/>
<member type="observer" ref="Denmark"/>
<member type="observer" ref="Finland"/>
<member type="observer" ref="Sweden"/>
<member type="observer" ref="Ireland"/>
<member type="associate partner" ref="Czech-Republic"/>
<member type="associate partner" ref="Hungary"/>
<member type="associate partner" ref="Slovakia"/>
<member type="associate partner" ref="Latvia"/>
<member type="associate partner" ref="Lithuania"/>
<member type="associate partner" ref="Poland"/>
<member type="associate partner" ref="Bulgaria"/>
<member type="associate partner" ref="Romania"/>
<member type="associate partner" ref="Estonia"/>
</org>
into
<org id="org-WEU">
<name>Western European Union</name>
<abbrev>WEU</abbrev>
<member type="member"
countries="Greece France Spain Germany Italy Belgium
Luxembourg Netherlands Portugal
United-Kingdom"/>
<member type="associate member"
countries="Turkey Norway Iceland"/>
<member type="observer"
countries="Austria Denmark Finland Sweden Ireland"/>
<member type="associate partner"
countries="Czech-Republic Hungary Slovakia Latvia
Lithuania Poland Bulgaria Romania
Estonia"/>
</org>
.
A "solution" based on
<xsl:template match="org">
<organization>
<xsl:copy-of select="@id|name|abbrev"/>
<xsl:for-each select="member/@type">
<member>
... collect all members of that type ...
</member>
</xsl:for-each>
</organization>
</xsl:template>
does *not* work since duplicates in [[member/@type]] are not removed.
The solution must not assume that the domain where the type value is
taken from is known when writing the program - thus the values must be
selected from the input file.
... I am missing a possibility to define views in XSLT which are not
output but can be used in the computation.
Wolfgang
to avoid questions: That's not my homework.
-- -----------------------------------------------------------------
Wolfgang May E-mail: may@xxxxxxxxxxxxxxxxxxxxxxxxxx
Universitaet Freiburg http://www.informatik.uni-freiburg.de/~may/
Institut fuer Informatik D-79110 Freiburg / Germany
Lehrstuhl fuer Datenbanken und Informationssysteme
Tel ++49 761 203-8131 Fax ++49 761 203-8122
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: XSLT: Does an element know abou, Mike Brown | Thread | RE: XSLT: Restructuring/Grouping, Mike Brown |
| XSLT: Does an element know about it, Wolfgang May | Date | Re: XSLT vs Omnimark, Paul Tchistopolskii |
| Month |