Asp.Net里的XML+Xlst输出代码的标准化的解决与问题

这两天一直在搞XML+Xslt输出的标准化,即输出Xhtml标准的代码

在.Net2.0的XslCompiledTransform 里 名字空间 xmlns=”http://www.w3.org/1999/xhtml”  是正确输出xhtml标准的关键
如果没有这个命名空间的话,输出的文档标签会自动去掉结尾的 / 符号即 变成了

有两种角决的办法:
一,自定义一个XHtmlWrite类,重写一下WriteEndElement() 方法,自已判断那些情况要关闭;
二,就是在模板文件Xlst里加上上面的合字空间啦~ .

对于第一种方法,结果就是xslt模板里的所有

变成了

这个结果很是让人难受. 目前的解决办法是要么加 要么是在不想关闭的标签尾加上 xml:space=”preserve”> 并且把结束标签换行.

我不知微软是乍想的,从XslTransform改到XslCompiledTransform 结果就出来这么一个事.哎~

如果有哪位大侠有更好的解决办法,万望提醒一下 .

No Comments, Be The First!

Your email address will not be published.