XSLT自关闭标签问题

23 .net tags xslt xslcompiledtransform

我正在使用xslt将xml文件转换为html..net xslt引擎不断为空标签提供自动关闭标签.

例:

<div class="test"></div> 
Run Code Online (Sandbox Code Playgroud)

<div class="test" />
Run Code Online (Sandbox Code Playgroud)

前者是有效的html,而后者是非法的HTML并且呈现得很糟糕.我的问题是:如何告诉xslt引擎(XslCompiledTransform)不使用自闭标签.

如果不可能,我怎么能告诉我的浏览器(在这种情况下是IE6 +)正确解释自动关闭标签.

Har*_*ime 23

将您的xsl:output方法更改为html(而不是xml).

或者,如果您还没有元素,请添加它

<xsl:output method="html"/>
Run Code Online (Sandbox Code Playgroud)

  • 它似乎没有用.我尝试了各种<xsl:output ...>的组合,但他一直给我xml. (2认同)

Net*_*964 16

解决方法可以是插入注释元素以强制生成非自闭合:

<script type="text/javascript" src="nowhere.js">
<xsl:comment></xsl:comment>
</script>
Run Code Online (Sandbox Code Playgroud)

它不是一个漂亮的解决方案,但它的工作原理:-)

/斯登


cat*_*lpa 11

如果您使用XmlWriter作为输出流,请改用HTMLTextWriter.XMLWriter会将HTML输出重新格式化为XML.