我使用xslt将xml转换为aspx文件.在xslt中,我有一个脚本标记来包含一个
jquery.js文件.要使其与IE一起使用,脚本标签必须具有明确的结束标记.由于某些原因,这不适用于下面的xslt.
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" xmlns:asp="remove"> <xsl:output method="html"/> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>TEST</title> <script type="text/javascript" src="jquery-1.2.6.js"></script>
但是如果我更改脚本标签,如下所示,它的工作原理.
<script type="text/javascript" src="jquery-1.2.6.js"> // <![CDATA[ // ]]> </script>
我以为< xsl:output method =“html”/>会做的伎俩,但似乎没有工作?
/乔纳斯
解决方法
如果您自己创建XmlWriter,您需要将变换的OutputSettings传递给XmlWriter,例如:
XmlDocument doc = new XmlDocument(); doc.LoadXml("<book><author>Trudi Canavan</author><title>Voice of the Gods</title></book>"); XslCompiledTransform transform = new XslCompiledTransform(); transform.Load("XSLTFile1.xslt"); StringBuilder output = new StringBuilder(); // Here we pass the output setting to the writer,otherwise the transform // may be set to Html,but the XmlWriter will be outputting Xml XmlWriter writer = XmlWriter.Create(output,transform.OutputSettings); transform.Transform(doc,writer); Console.WriteLine(output.ToString()); Console.ReadKey();