Could you please tell me how to overcome this problem ? I want to retain the CDATA tag.
Dave Brosius-2 wrote: > > > A CDATA section is a kludge for the manual xml writer to allow for > handling a bunch of problematic characters. In memory, there is no > difference between a CDATA section and a text block, and therefore when > parsing, parsers just return a string version. > > > -----Original Message----- > From: "AW" <[EMAIL PROTECTED]> > Sent: Tuesday, August 19, 2008 6:32pm > To: xalan-j-users@xml.apache.org > Subject: Losing CDATA when parsing a String to XML > > > I'm using Xalan 2.7.1. I've written the following Java extension to > transform > a string into XML. My problem is the variable in my XSLT (xmlNode) which > received the XML loses the CDATA tag. I'm not sure why Cdata section gets > removed. > > public Node ToXml(String xmlString) > { > DocumentBuilderFactory factory = > DocumentBuilderFactory.newInstance(); > factory.setNamespaceAware(true); > Document document = null; > > try > { > DocumentBuilder builder = factory.newDocumentBuilder(); > > document = builder.parse(new InputSource(new > StringReader(xmlString))); > } > catch (Exception ex) > { > ex.printStackTrace(); > } > if (document != null) > return document.getDocumentElement(); > else > return null; > } > > XSLT: > <xsl:variable name="xmlConverter" select="conv:new()" /> > <xsl:variable name="xmlNode" > select="conv:ToXml($xmlConverter,./docXSLT/text())"/> > <XSLTdoc> > <xsl:copy-of select="$xmlNode"/> > </XSLTdoc> > > > Input: > > <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> > <xsl:template match="/"> > <html> > <body> > <h2>My CD Collection</h2> > <table border="1"> > <tr bgcolor="#9acd32"> > <th align="left">Title</th> > <th align="left">Artist</th> > </tr> > <xsl:for-each select="catalog/cd"> > <tr> > <td><xsl:value-of select="title"/></td> > <td><xsl:value-of select="artist"/></td> > <![CDATA[" and ends with "]]> > </tr> > </xsl:for-each> > </table> > </body> > </html> > </xsl:template> > </xsl:stylesheet> > > Output: > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > <xsl:template match="/"> > <html> > <body> > <h2>My CD Collection</h2> > <table border="1"> > <tr bgcolor="#9acd32"> > <th align="left">Title</th> > <th align="left">Artist</th> > </tr> > <xsl:for-each select="catalog/cd"> > <tr> > <td> > <xsl:value-of select="title"/> > </td> > <td> > <xsl:value-of select="artist"/> > </td> > " and ends with " (The Cdata section is no longer there) > </tr> > </xsl:for-each> > </table> > </body> > </html> > </xsl:template> > </xsl:stylesheet> > > Could you please help me with this ? > > -- > View this message in context: > http://www.nabble.com/Losing-CDATA-when-parsing-a-String-to-XML-tp19060000p19060000.html > Sent from the Xalan - J - Users mailing list archive at Nabble.com. > > > > > -- View this message in context: http://www.nabble.com/Losing-CDATA-when-parsing-a-String-to-XML-tp19060000p19060170.html Sent from the Xalan - J - Users mailing list archive at Nabble.com.