通过创建XSL进行XML到XML的转换

时间:2015-12-08 07:49:33

标签: xml xslt xslt-1.0 xslt-2.0 transformation

我想创建" XSL"转换此xml代码的模板或文件

<pets xmlns="http://pets.com">
  <cat>
    <name>Alice</name>
    <age>9</age>
  </cat>

  <cat>
    <name>Bruce</name>
    <age>11</age>
  </cat>

  <cat>
    <name>Rocco</name>
    <age>11</age>
  </cat>

  <dog>
    <name>Midnight</name>
    <age>6</age>
  </dog>

  <dog>
    <name>Rudy</name>
    <age>7</age>
  </dog>

到此XML

<cats xmlns="http://pets.com">
  <cat name="Alice" age="9"/>
  <cat name="Bruce" age="11"/>
  <cat name="Rocco" age="11"/>  
</cats>

任何人都可以告诉或告诉我如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以尝试:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:pets="http://pets.com">
    <xsl:output method="xml" encoding="UTF-8" indent="yes" />

    <xsl:template match="pets:pets">
        <xsl:element name="cats" namespace="http://pets.com">
            <xsl:apply-templates select="pets:cat" />
        </xsl:element>
    </xsl:template>

    <xsl:template match="pets:cat">
        <xsl:copy>
            <xsl:attribute name="name"><xsl:value-of select="pets:name"/></xsl:attribute>
            <xsl:attribute name="age"><xsl:value-of select="pets:age"/></xsl:attribute>
        </xsl:copy>
    </xsl:template>

</xsl:transform>