XML漂亮打印机缺少2个关键边缘案例

XML漂亮打印机缺少2个关键边缘案例,xml,ruby,xslt,nokogiri,pretty-print,Xml,Ruby,Xslt,Nokogiri,Pretty Print,使用found on使用Nokogiri漂亮地打印xml,几乎一切都正常,但我无法将其用于HTML 首先,如果节点为空,则会将其转换为自动关闭节点,因此: <textarea></textarea> 转换为 <textarea/> 但这会在渲染时弄乱html树 第二,如果节点只有文本,则文本没有选项卡,关闭节点也没有选项卡,因此: <li> <label>some text</label> </li>

使用found on使用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的人知道快速解决方法吗?

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

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

    修改
    xsl:output
    元素以指示需要HTML输出和缩进:

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

    如果您只是尝试漂亮地打印输出,而不关心XSL提供的任何进一步转换,那么只需使用


    您还可以为HTML使用一个参数,该参数将某些标记视为单例,即使它们看起来像是开始标记,例如
    而不是

    如果您只是尝试漂亮地打印输出,而不关心XSL提供的任何进一步转换,那么只需使用

    您还可以为HTML使用一个参数,该参数将某些标记视为单例,即使它们看起来像开始标记,例如
    而不是