|
Subject: RE: [xsl] XSL & CDATA Processing From: Rohit Mathur <geek_on_line@xxxxxxxxx> Date: Wed, 30 Jun 2004 09:11:28 +1000 (EST) |
Well, I am running this in a Java Application and
using the built in processor in JDK1.4.2 .
TransformerFactory factory =
TransformerFactory.newInstance();
Templates template =
factory.newTemplates(new StreamSource(
new FileInputStream(DUPLICATES_XSL)));
Transformer xformer = template.newTransformer();
Source source = new DOMSource(tempDocument);
DocumentBuilder builder=
DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.newDocument();
Result result = new DOMResult(doc);
xformer.transform(source, result);
I have tried using Saxon (again from within the Java
Application) and that generates a different warning
message
Warning: at copy on line 12 of :
Cannot write an attribute node when no element start
tag is open
Also, the output does not contain any of the
attributes for the Text tag.
<Test>
<Text>
<Text.Description>Table File</Text.Description>
<Text.LongDescription>Table
File</Text.LongDescription>
</Text>
</Test>
Rohit.
--- Michael Kay <mhk@xxxxxxxxx> wrote: > 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] 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>
> > --+--
> >
> >
>
>
>
--+------------------------------------------------------------------
> 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>
> --+--
>
>
Find local movie times and trailers on Yahoo! Movies.
http://au.movies.yahoo.com
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Testing for a following sibling nod, Wright, Steve | Thread | RE: [xsl] XSL & CDATA Processing, Michael Kay |
| RE: [xsl] Testing for a following s, Michael Kay | Date | RE: [xsl] Testing for a following s, Wright, Steve |
| Month |