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 に答える