java - 如何从 XSL 输出缩进中排除某些元素?
问题描述
我需要转换一个 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 after<run>
和 before </run>
?
(注意:我的 xml 很大,有数百个元素。上面只是一个例子)(注意 2:我使用的是 java。因此 java 标签)
解决方案
XSLT 3.0 允许您说<xsl:output indent="yes" suppress-indentation="run"/>
. 为此,您需要切换到 XSLT 3.0 处理器,这在 Java 世界中意味着 Saxon。
推荐阅读
- python - BeautifulSoup 中的 findAll 方法在 Python 中不起作用
- ag-grid - 将 withStyles 与 ag-grid 自定义 cellEditor 一起使用会在控制台中引发警告 - 框架组件缺少方法 getValue()
- c - 需要左值作为增量操作数 - + 一元运算符
- sonarqube - S1166 异常处理程序应保留原始异常生成误报
- angular - 如何使工具提示扩展到其表格单元格之外?
- autocomplete - Azure Devops 禁用拉取请求自动完成
- driver - 在未安装驱动程序的情况下检测显卡类型
- asp.net-mvc - 在 MVC 中寻找一些跟踪代码路径的通用方法
- java - 从字符串 Java 中排除特殊字符
- pyspark - 如何使用 pyspark RDD 对数据进行分区、排序和排序?