This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
xsl:copy - change attributes and tag name
- From: "Matias Woloski" <woloski at sion dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Sat, 6 Apr 2002 16:43:18 -0300
- Subject: [xsl] xsl:copy - change attributes and tag name
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi folks!
I have this parent-child xml.
<TreeData>
<Indice IdIndice="1" Nombre="Omint Analisis" />
<Indice IdIndice="3" IdRef="1" Nombre="OMINT: Precios"/>
<Indice IdIndice="4" IdRef="1" Nombre="210 / Omint"/>
<Indice IdIndice="5" Nombre="Swiss Medical Analisis"/>
<Indice IdIndice="6" IdRef="5" Nombre="Swiss Precios"/>
<Indice IdIndice="7" IdRef="1" Nombre="310 / Omint"/>
<Indice IdIndice="8" IdRef="7" Nombre="Cobertura" IdDoc="1"/>
</TreeData>
What I want to do is putting it into a hierarchical format, which I do with
this xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<tree>
<xsl:apply-templates select="TreeData/*[not(@IdRef)]"/>
</tree>
</xsl:template>
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="//*[@IdRef = current()/@IdIndice]|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
So I get
<tree>
<Indice IdIndice="1" Nombre="Omint Analisis">
<Indice IdIndice="3" IdRef="1" Nombre="OMINT: Precios Directos" />
<Indice IdIndice="4" IdRef="1" Nombre="210 / Omint" />
<Indice IdIndice="7" IdRef="1" Nombre="310 / Omint">
<Indice IdIndice="8" IdRef="7" Nombre="Cobertura" IdDoc="1" />
</Indice>
</Indice>
<Indice IdIndice="5" Nombre="Swiss Medical Analisis">
<Indice IdIndice="6" IdRef="5" Nombre="Swiss Precios" />
</Indice>
</tree>
Now I want 3 things:
1. instead of generate <Indice> tags I want to get <tree> tags.
So I would get
<tree>
<tree ... />
<tree ..>
<tree ..>
</tree>
</tree>
2. I want to change the "Nombre" attribute to "text" attribute
So I would have
<tree text="210/Omint" ...>
3. How do I add another attribute to each entry?
<tree text="..." addedAttr="something">
thanks in advance!
Matias
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list