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