基于一个属性对xml元素进行分组

时间:2014-07-30 09:38:35

标签: xml xslt

我在XML中有这样的场景。

<?xml version="1.0" encoding="utf-8"?>
<container>
  <param name="paramA" value="valueA" />
  <param name="paramB" value="valueB" />
  ...
</container>

我希望得到结果......

<?xml version="1.0" encoding="utf-8"?>
<container>
   <paramA>
  <param value="valueA" />
   </paramA>

   <paramB>
  <param  value="valueB" />
   </paramB>

</container>

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">

    <xsl:output indent="yes"/>    

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

    <xsl:template match="param">
        <xsl:element name="{@name}">
            <xsl:copy>
                <xsl:copy-of select="@value"/>
            </xsl:copy>
        </xsl:element>
    </xsl:template>

</xsl:stylesheet>