通过XSL进行XML到XML的转换

时间:2015-01-22 11:33:21

标签: xml xslt

输入XML

                                    <CELL col="F">
                                  <Para apprevbar="F">s281w0-602
                                   <a>AB</a>
                                     <b>CD <d> RT </d> 78</b>
                                      <c>EF</c>....etc
                                    </Para>
                                  </CELL>

我希望输出为

                                <CELL col="F">
                         <Para apprevbar="F">s281w0-602
                               AB
                               CD
                               RT
                               78
                               EF...etc
                              </Para>
                              </CELL>

请告诉我任何xsl想法转换上面的输入xml以获得上述输出。

1 个答案:

答案 0 :(得分:1)

使用身份转换模板

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

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

根据您的评论和编辑,您似乎想要从Para元素中删除所有元素内容,以便您可以使用

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

继续采用目前采取的方法,但你也可以使用

<xsl:template match="Para">
  <xsl:copy>
    <xsl:apply-templates select="@*"/>
    <xsl:value-of select="."/>
  </xsl:copy>
</xsl:template>

只需输出Para元素的字符串值作为新内容。