xsl-list
[Top] [All Lists]

RE: Question about generating a full tree from a tree with xrefs using xslt ?

2003-12-10 08:48:08
The general model for this kind of problem is to use xsl:apply-templates
to process the tree recursively, in the normal way, except that at each
stage you select the logical children of a node rather than its physical
children. You can find the logical children using:

<xsl:key name="ref" match="ref" use="."/>

<xsl:template match="elem">
<xsl:apply-templates select="key('ref', @id)"/>
</xsl:template>

I haven't done anything here about the w,x,y,z in your problem, which I
don't think I understand.

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Peter Biechele
Sent: 10 December 2003 13:09
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Question about generating a full tree from a 
tree with xrefs using xslt ?



I have the following problem with XSLT:

The input stream is like:

<elem id="a1" type="w">
  <text>aa</text>
</elem>
<elem id="a2" type="x">
  <text>bb</text>
  <ref>a1</ref>
</elem>
<elem id="a3" type="y">
 <text>cc</text>
  <ref>a2</ref>
</elem>
<elem id="a4" type="x">
 <text>dd</text>
  <ref>a1</ref>
</elem>

Now i need in the output stream the following:

start with the text from all "w" types,
plot the text: for a special "w" type look for all "x" types 
which reference 
this "w" type
plot the text: for this "w" type again look for all "y" 
types, which reference 
either the given "w" type or any "x" type, which reference 
this "w" type.


So in general this is the problem of transforming a tree 
(with no circular 
references) having references to another tree without references but 
redundant tree nodes.


Can anybody help with some ideas ??

Thank you very much,
Peter Biechele

#####################################################
Dr. Peter Biechele, E-Mail: Peter(_dot_)Biechele(_at_)beXtec(_dot_)de


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list