Java风格的XML每行一个节点,没有空格
在java中从xml中添加和删除元素时,只是在删除空白,但在xml文档中保持每个节点在自己的行上,我很难理解xml样式表
以下是到目前为止发生的事情
首先,我有以下XML
<jobs>
<job>Job 1</job>
<job>Job 2</job>
<job>Job 3</job>
<job>Job 4</job>
</jobs>
然后我移除其中一个元素,它最后看起来像这样,元素所在的空格
<jobs>
<job>Job 1</job>
<job>Job 3</job>
<job>Job 4</job>
</jobs>
所以我试着应用我找到的以下样式表
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
这使得xml显示在一行上,因为它删除了所有空白。但我也在努力保持文件的可读性
<jobs><job>Job 1</job><job>Job 2</job><job>Job 3</job><job>Job 4</job></jobs>
我想知道是否有人有一个样式表来实现这一点
# 1 楼答案
您需要将
indent="yes"
添加到<xsl:output
:<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
(此外,您可能希望切换到XSL 2.0版)
希望这有帮助