使用XSLT在XML中剥离标记

时间:2017-06-21 15:38:53

标签: xml xslt xslt-1.0

<Tag1>
<dummy><name>qwert</name><id>123</id></dummy>
<dummy><name>wert</name><id>023</id></dummy>
<dummy><name>hfj</name><id>103</id></dummy>    
</Tag1> 

我有上面的XML,我想在XML输出文件中删除它

期望的O / p:

<Tag1>
<name>qwert</name><id>123</id>
<name>wert</name><id>023</id>
<name>hfj</name><id>103</id>   
</Tag1>

我也尝试使用下面的XSLT

<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="dummy"/>
 </xsl:stylesheet> 

它正在移除它下面的一切

1 个答案:

答案 0 :(得分:1)

您需要这样做,以确保仍然选择dummy的孩子

 <xsl:template match="dummy">
   <xsl:apply-templates />
 </xsl:template>

编辑:这是完整的电子表格

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

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

  <xsl:template match="dummy">
    <xsl:apply-templates />
  </xsl:template>
</xsl:stylesheet>