我需要转换xml文档,并且希望格式化输出,因此我使用<xsl:output indent="yes" />
。但我希望特定元素不缩进。例如,我的xml(经过任何转换,例如删除元素等)未格式化,如下所示:
<root><code><run><formula>xyz</formula></code></root>
通过<xsl:output indent="yes" />
,我得到这样的输出:
<root>
<code>
<run>
<formula>xyz</formula>
</run>
</code>
</root>
我正在寻找这样的输出:
<root>
<code>
<run><formula>xyz</formula></run>
</code>
</root>
基本上我不希望<run>
(及其中的元素)进行格式化。
这可以用XSL完成吗?或者我需要在XSL转换后解析文件,以删除\ n在<run>
之后和</run>
之前?
(注意:我的xml很大,包含数百个元素。以上仅是示例) (注2:我正在使用java。因此是java标记)
答案 0 :(得分:0)
XSLT 3.0允许您说<xsl:output indent="yes" suppress-indentation="run"/>
。为此,您将需要切换到XSLT 3.0处理器,这在Java世界中就是Saxon。