一个Xsl文件中,有html标签类似
<div class="clear"></div>
在使用XslCompiledTransform转换后,变成了
<div class="clear" />
这种标签浏览器是不认的,会理解为<div class="clear">,所以嵌套就出错了。
后来想了个办法
<div class="clear">&nbsp;</div>
这样被转换为
<div class="clear"> </div>
中间有个空格。这样倒还能接受。
但是引用js脚本的时
<script type="text/javascript" src="..."></script>
这个也变成了<srcipt ... />
当然
<script type="text/javascript" src="...">&nbsp;</script>
也可以解决,但是太山寨了。请问什么地方可以设置它不让成对的空标签转换为单个封闭标签?

解决方案 »

  1.   

    试试这个:XmlWriterSettings settings = new XmlWriterSettings();
    settings.OutputMethod= XmlOutputMethod.Html;XmlCompiledTransform.OutPutSetting = settings;
      

  2.   


    谢谢,我按这个思路查查,但是XmlWriterSettings.OutputMethod是只读的。
      

  3.   

    试了半天,4楼这个方法似乎行不通
    也许是我对c#的xslt这些东西不够了解,能不能再帮想想办法?
      

  4.   

    XslCompiledTransform xslt = new XslCompiledTransform();xslt.Load("stylesheet.xsl");XmlWriterSettings settings = new XmlWriterSettings();
    settings.OutputMethod= XmlOutputMethod.Html; 
    XmlWriter writer = XmlWriter.Create("result.xml", settings);xslt.Transform("input.xml", writer);
    writer.Close();之前那段代码我是随手写的,没有测试,有些问题
    变通一下,上面的代码应该是可以的
      

  5.   


    XmlWriterSettings.OutputMethod is ReadOnly