Java Style XML每行一个节点,没有空格

时间:2011-07-26 06:08:37

标签: 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 个答案:

答案 0 :(得分:2)

您需要将indent="yes"添加到<xsl:output

<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

(另外,您可能希望切换到XSL 2.0版)

希望这有帮助