thanks Joerg. it worked...
Can you tell why is this restriction ? When we create CHILD ELEMENT or
ATTRIBUTE using DOM, the order did not seem to matter...
regards
Saravanan L
Tuesday, December 31, 2002 6:07 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc:
From: Joerg Heinicke <joerg(_dot_)heinicke(_at_)gmx(_dot_)de>
Subject: Re: [xsl] is this valid <xsl:template match="@id"> ?
Hello Saravanan,
you can not create an attribute after an element, so change
<xsl:template match="Item">
<xsl:element name="Item">
<xsl:apply-templates select="Name"></xsl:apply-templates>
<xsl:apply-templates select="@ID"></xsl:apply-templates>
</xsl:element>
</xsl:template>
to
<xsl:template match="Item">
<xsl:element name="Item">
<xsl:apply-templates select="@ID"></xsl:apply-templates>
<xsl:apply-templates select="Name"></xsl:apply-templates>
</xsl:element>
</xsl:template>
Regards,
Joerg
SLakshman(_at_)eagle(_dot_)org wrote:
Here are the samples of XML, XSLT and resulting XML I got...
*************** source XML *************************************
<?xml version="1.0"?>
<Items>
<Item ID="1234">
<Name>ABCDE</Name>
</Item>
<Item ID="2345">
<Name>BCDE</Name>
</Item>
<Item ID="3456">
<Name>CDE</Name>
</Item>
<Item ID="4567">
<Name>DE</Name>
</Item>
<Item ID="5678">
<Name>E</Name>
</Item>
<Item ID="6789">
<Name></Name>
</Item>
</Items>
**************************************************************
*************** XSLT *************************************
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl
="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes"></xsl:output>
<xsl:strip-space elements="*"></xsl:strip-space>
<xsl:template match="/">
<xsl:apply-templates select="Items"></xsl:apply-templates>
</xsl:template>
<xsl:template match="Items">
<xsl:element name="Items">
<xsl:apply-templates select
="Item"></xsl:apply-templates>
</xsl:element>
</xsl:template>
<xsl:template match="Item">
<xsl:element name="Item">
<xsl:apply-templates select
="Name"></xsl:apply-templates>
<xsl:apply-templates select="
@ID"></xsl:apply-templates>
</xsl:element>
</xsl:template>
<xsl:template match="Name">
<xsl:element name="Name">
<xsl:apply-templates></xsl:apply-templates>
</xsl:element>
</xsl:template>
<xsl:template match="@ID">
<xsl:attribute name="ID">
<xsl:value-of select="."></xsl:value-of>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
*******************************************************************
*************** result XML *************************************
<?xml version="1.0"?>
<Items>
<Item>
<Name>ABCDE</Name>
</Item>
<Item>
<Name>BCDE</Name>
</Item>
<Item>
<Name>CDE</Name>
</Item>
<Item>
<Name>DE</Name>
</Item>
<Item>
<Name>E</Name>
</Item>
<Item>
<Name></Name>
</Item>
</Items>
*******************************************************************
thanks
Saravanan
Monday, December 30, 2002 6:15 PM
To: "'xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com'"
<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
cc:
From: "Martinez, Brian" <brian(_dot_)martinez(_at_)trip(_dot_)com>
Subject: RE: [xsl] is this valid <xsl:template match="@id"> ?
From: SLakshman(_at_)eagle(_dot_)org [mailto:SLakshman(_at_)eagle(_dot_)org]
Sent: Monday, December 30, 2002 4:44 PM
Subject: [xsl] is this valid <xsl:template match="@id"> ?
I would like to create a template that matches attribute id
in all elements
<xsl:template match="@id">
this is not working with MSXML... is it correct to use such syntax ?
The syntax is legal, and MSXML (at least v.4.0) should have no trouble
with
it. Your problem likely lies elsewhere (perhaps the select expression in
your apply-templates elements, or the XPath syntax in the template
itself).
You should post some sample input/output and the relevant XSLT if you
want
more specific help.
cheers,
b.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list