【问题标题】:XSLT 1.0 to strip whitespaceXSLT 1.0 去除空白
【发布时间】:2019-08-06 07:00:45
【问题描述】:

我想要一个在删除 guid 元素后没有空格的输出 xml 文件。

  1. 输入格式如下的 XML 文件:

  <FilterDefinition xmlns="com.cisag.sys.tools.bi.obj.FilterDefinition">
    <guid>72312782178912782380210</guid>
    <name>REI0101</name>
    <description>Partner</description>
    <object>com.cisag.app.general.obj.Partner</object>
    <nlsMode>SINGLE_LANGUAGE</nlsMode>
    <dateTimeMode>COMPACT</dateTimeMode>
    <exportTransformationURI/>
    <importTransformationURI/>
    <logLevel>USER</logLevel>
    <logFolder/>
    <authorizationMode>NO_CHECK</authorizationMode>
    <filter>677869876769097980</filter>
  </FilterDefinition>
  1. 现在我正在匹配元素 guid,如下所示:

  <xsl:template match="/">
		<xsl:apply-templates select="$FilterNode/*"/>
  </xsl:template>

  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="guid"></xsl:template>
  1. 输出是这样的。现在有一个我不想要的空行,而不是 guid 元素:

  <FilterDefinition xmlns="com.cisag.sys.tools.bi.obj.FilterDefinition">

    <name>REI0101</name>
    <description>Partner</description>
    <object>com.cisag.app.general.obj.Partner</object>
    <nlsMode>SINGLE_LANGUAGE</nlsMode>
    <dateTimeMode>COMPACT</dateTimeMode>
    <exportTransformationURI/>
    <importTransformationURI/>
    <logLevel>USER</logLevel>
    <logFolder/>
    <authorizationMode>NO_CHECK</authorizationMode>    
    <filter>677869876769097980</filter>
  </FilterDefinition>
  1. 期望的结果:

  <FilterDefinition xmlns="com.cisag.sys.tools.bi.obj.FilterDefinition">
    <name>REI0101</name>
    <description>Partner</description>
    <object>com.cisag.app.general.obj.Partner</object>
    <nlsMode>SINGLE_LANGUAGE</nlsMode>
    <dateTimeMode>COMPACT</dateTimeMode>
    <exportTransformationURI/>
    <importTransformationURI/>
    <logLevel>USER</logLevel>
    <logFolder/>
    <authorizationMode>NO_CHECK</authorizationMode>    
    <filter>677869876769097980</filter>
  </FilterDefinition>

我认为我还必须匹配格式字符才能获得我想要的结果。

【问题讨论】:

  • 使用空格避免空白输入:&lt;xsl:strip-space elements="*"/&gt;
  • 你可能还需要&lt;xsl:output method="xml" indent="yes" /&gt;

标签: xml xslt code-formatting


【解决方案1】:

从@AmrendraKumar 和@TimC 复制cmets 作为答案:在像这样处理面向数据的XML 时使用&lt;xsl:strip-space elements="*"/&gt;,其中元素之间的空格没有意义。然后使用&lt;xsl:output indent="yes"/&gt; 将新的空白注入到输出中,以实现所需的布局(或接近它的布局)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2017-09-06
    • 2021-11-05
    • 2013-05-14
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    相关资源
    最近更新 更多