xsl-list
[Top] [All Lists]

Re: is this valid <xsl:template match="@id"> ?

2003-01-02 12:42:29
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



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