xsl-list
[Top] [All Lists]

Delete XML Node

2002-10-31 11:13:03
Hi,

I am converting XML to XML using XSL. I am facing a problem as mentioned below. Can anyone pl help with writing a correct XSL for solving the problem.

Thanks,
Deepak

For e.g.

The Schema
----------
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>

<xsd:element name='A' type='xsd:string'>
</xsd:element>

<xsd:element name='Z'>
 <xsd:complexType/>
</xsd:element>

<xsd:element name='Y'>
 <xsd:complexType>
  <xsd:sequence>
   <xsd:element ref='Z'/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:element>

<xsd:element name='X'>
 <xsd:complexType>
  <xsd:sequence>
   <xsd:element ref='A'/>
   <xsd:element ref='Y'/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:element>
</xsd:schema>

The input XML
-------------
<X>
   <A>A</A>
   <Y></Y>
</X>

The XSL
-------
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
        <xsl:template match="/">
        <X>
        <xsl:for-each select="X/A">
        <A>
        <xsl:value-of select="."/>
        </A>
        </xsl:for-each>
        <Y>
        <xsl:for-each select="X/Y/Z">
        <Z>
        <xsl:value-of select="."/>
        </Z>
        </xsl:for-each>
        </Y>
        </X>
        </xsl:template>
</xsl:stylesheet>

The output is
-------------
<?xml version='1.0' ?>
<X>
<A>A</A>
<Y/>
</X>

But I desire the output
-----------------------
<?xml version='1.0' ?>
<X>
<A>A</A>
</X>

_________________________________________________________________
Get a speedy connection with MSN Broadband.  Join now! http://resourcecenter.msn.com/access/plans/freeactivation.asp


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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