Subject: RE: XSL & CDATA Processing
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Tue, 29 Jun 2004 08:59:30 +0100
|
Weird. How are you running this transformation (what XSLT processor, what
XML parser, and how are you invoking it?)
Michael Kay
> -----Original Message-----
> From: Rohit Mathur [mailto:geek_on_line@xxxxxxxxx]
> Sent: 29 June 2004 03:21
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: XSL & CDATA Processing
>
> Hi,
>
> I am trying to perform an XSL transform for an XML
> Document to remove duplicate Nodes. The XML file is as
> below
>
> <Test>
> <Text LineCount="29" Object="RECORD" Status="?"
> Version="000">
> <Text.Description><![CDATA[Table
> File]]></Text.Description>
> <Text.LongDescription><![CDATA[Table
> File]]></Text.LongDescription>
> </Text>
>
> <Text LineCount="29" Object="RECORD" Status="?"
> Version="000">
> <Text.Description><![CDATA[Table
> File]]></Text.Description>
> <Text.LongDescription><![CDATA[Table
> File]]></Text.LongDescription>
> </Text>
> </Test>
>
>
> The XSL stylesheet I am using to do this is as below.
>
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0" >
> <xsl:output method="xml"
> omit-xml-declaration="yes"/>
> <xsl:template match="Text">
> <xsl:if test="not(@Object =
> preceding::Text/@Object)">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()"/>
> </xsl:copy>
> </xsl:if>
> </xsl:template>
>
> <xsl:template match="@*|node()">
> <xsl:copy>
> <xsl:apply-templates select="@*|node()"/>
> </xsl:copy>
> </xsl:template>
> </xsl:stylesheet>
>
> The output generated removes the duplicate node but
> somehow doesn't process the CDATA sections properly.
>
> <Test>
> <Text LineCount="29" Object="RECORD" Status="?"
> Version="000">
> <![CDATA[<Text.Description>]]>Table
> File</Text.Description>
> <![CDATA[<Text.LongDescription>]]>Table
> File</Text.LongDescription>
> </Text>
> </Test>
>
> I have tried adding a "cdata-section-elements" section
> to the xsl:ouput tag telling it to treat
> Text.Description & Text.LongDescription as CDATA.
> This creates the following output
>
> <Test>
> <Text LineCount="29" Object="RECORD" Status="?"
> Version="000">
>
> <![CDATA[<Text.Description><![CDATA[]]]]><![CDATA[>]]><![CD
> ATA[Table
> File]]></Text.Description>
>
> <![CDATA[<Text.LongDescription><![CDATA[]]]]><![CDATA[>]]><
> ![CDATA[Table
> File]]></Text.LongDescription>
> </Text>
> </Test>
>
> Can anyone help me?
>
> Cheers
> Rohit.
>
> Find local movie times and trailers on Yahoo! Movies.
> http://au.movies.yahoo.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@xxxxxxxxxxxxxxxxxxxxxx>
> --+--
>
>
|