XML Pretty Printer缺少2个关键边缘案例

时间:2010-04-12 07:32:10

标签: xml ruby xslt nokogiri pretty-print

使用this xslt file上的this blog使用Nokogiri来打印xml,几乎的所有内容都可以正常工作,但我无法将其用于HTML。

首先,如果节点为空,则将其转换为自闭节点,因此:

<textarea></textarea>

转换为

<textarea/>

但是渲染时会弄乱html树。

其次,如果节点只有文本,则文本不是标签,关闭节点不是标签,所以:

<li>
 <label>some text</label>
</li>

变为:

<li>
 <label>some text
</label>
</li>

......但理想情况是:

<li>
 <label>
  some text
 </label>
</li>

XSLT的专业人员是否知道快速修复此问题?

2 个答案:

答案 0 :(得分:2)

修改xsl:output元素以表示您想要HTML输出和缩进:

<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>

答案 1 :(得分:1)

如果您只是尝试打印输出而不关心XSL提供的任何进一步转换,那么只需使用http://prettydiff.com/?m=beautify

您还可以使用HTML http://prettydiff.com/?m=beautify&html的参数将某些标记视为单例,即使它们看起来像开放标记,例如&lt; br&gt;而不是&lt; br /&gt;。