如何在XSLT中将节点删除到同一级别的组

时间:2013-02-03 19:48:16

标签: xslt

我正在尝试将所有记录分组到同一级别(我同意它不正确,但遗留系统已经在生产环境中工作)。

我有这个xml文件......

enter image description here

现在,我需要删除保存值的节点“SalesOrg”...文件需要获得此结构。

enter image description here

我正在使用此XSLT进行尝试

enter image description here

但是,输出XML文件继续相同..

enter image description here

由于

2 个答案:

答案 0 :(得分:1)

如果您只需要删除SalesOrg-Nodes,请使用以下样式表:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="SalesOrg">
    <xsl:copy-of select="*" />
  </xsl:template>
</xsl:stylesheet>

答案 1 :(得分:0)

此转化

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

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

当应用于提供的XML文档(无法复制/粘贴图片!!!)时,产生想要的结果(无法复制/粘贴图片!!!)。