This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
merging generic elements in a parent-child relationship Part II
- From: "Matias Woloski" <woloski at sion dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 27 Jun 2002 14:47:20 -0300
- Subject: [xsl] merging generic elements in a parent-child relationship Part II
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi guys!
thanks for the help and the stylesheets :)
Right now I've decided to go for the most simple one and began to make some
modifications to suit my needs
The XML is this one:
<root>
<Persona id="abc" idCountry="1"/>
<Persona id="abcd" idCountry="1"/>
<b id="b1" idPersona="abc"/>
<b id="b2" idPersona="abc"/>
<b id="b3" idPersona="abcd"/>
<c id="c1" idb="b1"/>
</root>
This is the stylesheet I have. Note the TopElement param. This is something
I'm gonna know.
1 <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
3 <xsl:param name="TopElement" select="Persona" />
4 <xsl:template match="root">
5 <root>
6 <xsl:apply-templates select="//Persona"/>
7 </root>
8 </xsl:template>
9
10 <xsl:template match="*">
11 <xsl:element name="{name()}">
12 <xsl:copy-of select="@*"/>
13 <xsl:apply-templates select="../*[@idPersona=current()/@id or
@idb=current()/@id]"/>
14 </xsl:element>
15 </xsl:template>
16 </xsl:stylesheet>
There are some things I would like to know
1. Line 6. How can I select based on the TopElement param. I would like to
do something like
<xsl:apply-templates select="//$TopElement" />
2. Line 13. I'd like to make this on runtime. I mean, instead of having
@idPersona I'd like to have @concat('id',name()). obviously this cannot be
done. Is this possible to do? I've read the Things XSL can't do on
http://www.dpawson.co.uk and there is one that maybe answer my questions
"...There is no way in XSLT of constructing XPath expressions (e.g. variable
references) at run-time..."
So if this is true, I'm looking for a workaround on this...
thanks for your help,
Matias
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list