xsl-list
[Top] [All Lists]

RE: Element name as attribute value

2005-08-11 05:26:46
Thanks a lot! It's worked! 

-----Original Message-----
From: Marcin Miłkowski [mailto:milek_pl(_at_)o2(_dot_)pl] 
Sent: Thursday, August 11, 2005 5:54 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Element name as attribute value

Shailesh napisał(a):
Hi All,
 
I have to transform element name say "comments" as attribute value to 
"<tsta name="comments">". Can it be possible using XSLT 2.0.
 
Xml contains:
 
<?xml version=1.0?>
<test>
<text:p text:trans_attr="trans">
Sample para. This needs to be translated. 
<comments>This is not translated</comments> </text:p> </test>

This XML is not valid - you're missing quotes around the XML version
("1.0") and the namespace declaration. But the thing you're talking about is
the easiest transformation I could think of, so it's possible also in XSLT
1.0.

I corrected it thus:

<?xml version="1.0"?>
<test xmlns:text="http://www.text.com"; > <text:p text:trans_attr="trans">
Sample para. This needs to be translated.
<comments>This is not translated</comments> </text:p> </test>

using a stylesheet:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">

<xsl:output method="xml" indent="yes"/>

<xsl:template match="@*|node()">
          <xsl:copy>
                <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
</xsl:template>


<xsl:template match="comments">
<xsl:element name="tsta">
<xsl:attribute name="name">
<xsl:text>comments</xsl:text>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>

</xsl:stylesheet>

you would get:

<?xml version="1.0" encoding="UTF-16"?>
<test xmlns:text="http://www.text.com";>
<text:p text:trans_attr="trans">
Sample para. This needs to be translated.
<tsta name="comments">This is not translated</tsta> </text:p> </test>

which is almost what you wanted, but with a correct namespace declaration.

Best,
        Marcin

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>