2

我正在将 XML 转换为 XML,并希望自动缩进结果。
所以我使用<xsl:output method="xml" indent="yes"/>
当通过 .net4 编译转换运行它时,只要输出上没有文本节点,它就可以很好地工作。
一旦我添加了一些文本<xsl:text>some text</xsl:text>,整个 xml 文件的缩进就消失了,结果 XML 由一些非常长的行组成(格式良好但不可读......)

例子:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/">
    <Root>
      <!--xsl:text>some test</xsl:text-->
      <Test1/>
      <Test2/>
    </Root>
  </xsl:template>

</xsl:stylesheet>

结果:

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Test1 />
  <Test2 />
</Root>

删除评论时的结果<xsl:text>some test</xsl:text>

<?xml version="1.0" encoding="utf-8"?>
<Root>some test<Test1 /><Test2 /></Root>

有任何想法吗?

4

1 回答 1

3

用 指定的缩进

<xsl:output indent="yes"/>

仅影响仅空白节点的处理

每当您指定非纯空白文本节点时,您必须为它们提供您自己的缩进——您自己。

于 2012-05-29T12:11:04.770 回答