[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] element name as attribute value


Subject: Re: [xsl] element name as attribute value
From: George Cristian Bina <george@xxxxxxxxxxxxx>
Date: Tue, 23 Jan 2007 12:07:17 +0200

Hi,

You can just start with the recursive copy template and add specific rules to handle the specific processing you want in different contexts. For instance the example below changes X in A and changes Y in <B attribute="Y">

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="X">
<A>
<xsl:apply-templates select="node() | @*"/>
</A>
</xsl:template>
<xsl:template match="Y">
<B attribute="Y">
<xsl:apply-templates select="node() | @*"/>
</B>
</xsl:template>
</xsl:stylesheet>


Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


San wrote:
Hi all,

Hope you can help me with this problem (seems easy but
somehow i can't figure how to do it :(( )
I have this xml file

<X>
  <Y/>
</X>

I would like to have the output (element Y as
attribute value from other element e.g. B)

<A>
  <B attribute="Y">
</A>

I tried with <xsl:copy-of select="child::node()"/> it worked but only in the element part, can't put it
as attribute value.
It become like


<A>
  <Y/>
</A>

Really appreciate when someone can help this desperate
person.

Many thanks before
san




____________________________________________________________________________________
Need Mail bonding?
Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users.
http://answers.yahoo.com/dir/?link=list&sid=396546091


Current Thread