[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: A very interesting feature of MSXML
In Cocoon2, I get "<result xmlns:x="urn:x" xmlns:msxsl="urn:schemas-microsoft-com:xslt"></result>" -----Original Message----- From: Alexander Gutman [mailto:gutman@xxxxxxxxxxxxxxx] Sent: August 11, 2001 8:58 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: A very interesting feature of MSXML Hello, friends. I have just discovered a very interesting feature of MSXML. If we transform this: <root> <one/> <two/> <three/> </root> via this: <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:x="urn:x"> <msxsl:script language="JScript" implements-prefix="x"> var m = 'old'; function setMode(newMode){ m = newMode; return 'changed' } function mode(){ return m } </msxsl:script> <xsl:template match="/root" priority="1"> <result> <xsl:apply-templates select="*"/> </result> </xsl:template> <xsl:template match="*[x:mode()='old']"> <xsl:copy> <xsl:attribute name="mode">old</xsl:attribute> </xsl:copy> </xsl:template> <xsl:template match="*[x:mode()='new']"> <xsl:copy> <xsl:attribute name="mode">new</xsl:attribute> </xsl:copy> </xsl:template> <xsl:template match="two" priority="1"> <two mode="{x:setMode('new')}"/> </xsl:template> </xsl:transform> then we obtain: <result> <one mode="old"/> <two mode="changed"/> <three mode="new"/> </result> I did not believe it would work, but it works! I am not sure that this behavior is standards-driven, but it is very convenient. -- Alexander E. Gutman XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list 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
|