|
Subject: Re: Is it possible to merge attributes from multiple elements? From: Edwin Glaser <edwin@xxxxxxxxxxxxxxx> Date: Sun, 18 Jun 2000 12:30:06 +0200 |
You wrote:
> I'm trying to write a template that combines attributes from two elements into a
> single element. The goal is to use XSLT to translate something like this:
>
> <matrix>
> <column c="1">
> <column c="2">
> <row r="1">
> <row r="2">
> </matrix>
>
> into something like this:
>
> <table>
> <tr><td c="1" r="1"/><td c="2" r="1"/></tr>
> <tr><td c="1" r="2"/><td c="2" r="2"/></tr>
> </table>
> As far as I've been able to tell, variables, can't hold anything other than simple
> text--much less a collection of attribute nodes.
Don't know if it is possible with pure xslt, but with a rtf->nodeset converter
your solution needs only slightly modifications. Here is a xalan example, saxon
has a builtin converter. Let's hope the next xslt specification will remove those
brain-dead limitations!
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:util="de.pannenleiter.xmlapache.Util"
exclude-result-prefixes="util">
<xsl:template match="row">
<xsl:variable name="this"><xsl:copy-of select="."/></xsl:variable>
<tr>
<xsl:for-each select="../column">
<td>
<xsl:for-each select="@*">
<xsl:copy/>
</xsl:for-each>
<xsl:for-each select="util:nodeset($this)/*/@*">
<xsl:copy/>
</xsl:for-each>
</td>
</xsl:for-each>
</tr>
</xsl:template>
</xsl:stylesheet>
public class Util
{
public static XNodeSet nodeset(Node value)
throws Exception
{
Node node = (Node) value;
return new XNodeSet((Node) value);
}
}
Hope it helps, edwin
--
Edwin Glaser -- edwin@xxxxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Is it possible to merge attribu, Jeni Tennison | Thread | Re: Is it possible to merge attribu, andy |
| Re: Paramter passing in Xalan, Jeni Tennison | Date | Re: Paramter passing in Xalan, madhu |
| Month |