[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: amp and &
Nikhil G. Daddikar wrote: > That doesn't work > > & inside a CDATA still gets converted to & CDATA sections are for telling an XML parser that the text inside them is not to be interpreted as markup. There's no difference between these: <![CDATA[foo & bar]]> foo & bar Both mean the string of character data "foo & bar", and this is what the XML parser reports to the XSLT processor, and is what ends up in the text node or attribute node in the XPath/XSLT trees. When these trees are serialized as HTML or XML, "&" and "<" are escaped automatically in order to prevent them from being misinterpreted as markup. Don't worry about the input. An XSLT processor, when using the html output method, is supposed to leave the content of a <script> element unescaped. If your XSLT processor is not doing that, tell us which one it is and report a bug to the vendor. Seems to work for me: cdata.xml ========= <data>document.write('<p>foo & bar</p>');</data> cdata.xsl ========= <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes" encoding="iso-8859-1"/> <xsl:template match="/"> <html> <head> <title>test</title> </head> <body> <h1>test</h1> <script type="text/javascript"> <xsl:value-of select="data"/> </script> </body> </html> </xsl:template> </xsl:stylesheet> result of running with 4 different XSLT processors ================================================== # saxon cdata.xml cdata.xsl <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>test</title> </head> <body> <h1>test</h1><script type="text/javascript">document.write('<p>foo & bar</p>');</script></body> </html> # 4xslt cdata.xml cdata.xsl <html> <head> <meta content='text/html; charset=iso-8859-1' http-equiv='Content-Type'> <title>test</title> </head> <body> <h1>test</h1> <script type='text/javascript'>document.write('<p>foo & bar</p>');</script> </body> </html> # java org.apache.xalan.xslt.Process -IN test/cdata.xml -XSL test/cdata.xsl <html> <head> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>test</title> </head> <body> <h1>test</h1> <script type="text/javascript">document.write('<p>foo & bar</p>');</script> </body> </html> #C:\> msxsl cdata.xml cdata.xsl <html> <head> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>test</title> </head> <body> <h1>test</h1><script type="text/javascript">document.write('<p>foo & bar</p>');</script></body> </html> Mike -- Mike J. Brown | http://skew.org/~mike/resume/ Denver, CO, USA | http://skew.org/xml/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|