This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Converting attributes into child elements
- To: <xsl-list at mulberrytech dot com>
- Subject: Re: Converting attributes into child elements
- From: "Steve Muench" <Steve dot Muench at oracle dot com>
- Date: Sat, 11 Nov 2000 09:52:39 -0800
- References: <200011111738.MAA04983@mail.monmouth.com>
- Reply-To: xsl-list at mulberrytech dot com
Here's an example from my book, taken from
the section called "The Talented Identity Transformation".
Hope it helps...
<!-- AttrToElement.xsl: Turn all attributes into subelements -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import the identity transformation. -->
<xsl:import href="Identity.xsl"/>
<xsl:strip-space elements="*"/>
<xsl:output indent="yes"/>
<!-- Match any Attribute and turn it into an element -->
<xsl:template match="@*">
<xsl:element name="{name(.)}"><xsl:value-of select="."/></xsl:element>
</xsl:template>
</xsl:stylesheet>
The base "Identity.xsl" transformation, imported by
the AttrToElement.xsl stylesheet above, looks like this:
<!-- The Identity Transformation -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Whenever you match any node or any attribute -->
<xsl:template match="node()|@*">
<!-- Copy the current node -->
<xsl:copy>
<!-- Including any attributes it has and any child nodes -->
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
______________________________________________________________
Steve Muench, Lead XML Evangelist & Consulting Product Manager
BC4J & XSQL Servlet Development Teams, Oracle Rep to XSL WG
Author "Building Oracle XML Applications", O'Reilly
http://www.oreilly.com/catalog/orxmlapp/
----- Original Message -----
From: <jlangdon@monmouth.com>
To: <xsl-list@mulberrytech.com>
Sent: Saturday, November 11, 2000 8:38 AM
Subject: Converting attributes into child elements
| Hello All,
|
| I need some help with a transformation. I would like to take an element
| with multiple attributes and convert them so the attributes are now child
| elements of the original element. See example.
|
| <contactInfo>
| <person fname="John" lname="Doe" address="123 Main Street"
| city="Princeton"
| zipcode="08800">
| <person fname="John" lname="Doo" address="456 Main Street" city="Trenton"
| zipcode="08801">
| <person fname="John" lname="Doh" address="789 Main Street"
| city="Jamesburg"
| zipcode="08802">
| </contactInfo>
|
| Convert to
|
| <contactInfo>
| <person>
| <fname>John</fname>
| <lname>Doe</lname>
| <address>123 Main Street</address>
| <city>Princeton</city>
| <zipcode>08800</zipcode>
| </person>
| <person>
| <fname>John</fname>
| <lname>Doo</lname>
| <address>456 Main Street</address>
| <city>Trenton</city>
| <zipcode>08801</zipcode>
| </person>
| <person>
| <fname>John</fname>
| <lname>Doh</lname>
| <address>789 Main Street</address>
| <city>Jamesburg</city>
| <zipcode>08802</zipcode>
| </person>
| </contactInfo>
|
| Any direction would be greatly appreciated.
|
| TIA,
|
| Jeff Langdon
| Web Programmer
| LTA Group, Inc
| Jamesburg, NJ 08831
|
|
| ---------------------------------------------
| This message was sent using MI-Webmail.
| No matter where you are, never lose touch.
| Get your Email using MI-Webmail.
| http://www.monmouth.com/
|
|
|
| XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list