在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>
我想知道是否有人有样式表来实现这个目标?
答案 0 :(得分:2)
您需要将indent="yes"
添加到<xsl:output
:
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
(另外,您可能希望切换到XSL 2.0版)
希望这有帮助