有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

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

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

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

    希望这有帮助