简体   繁体   English

XSLT转换将元素转换为属性

[英]XSLT transformation converting elements to attributes

I am trying to transform this XML file : 我正在尝试转换此XML文件:

  <database name="sql_sales">
        <!-- Table Customer -->
        <table name="Customer">
            <column name="CustomerID">1</column>
            <column name="Name">Roth Farrell</column>
            <column name="Age">50</column>
            <column name="Country">Canada</column>
            <column name="City">Fermont</column>
            <column name="Signup_date">2013-03-09 16:34:13</column>
            <column name="Channel">Coupon</column>
        </table>
       <table name="Customer">
        <column name="CustomerID">3</column>
        <column name="Name">Randall Mosley</column>
        <column name="Age">20</column>
        <column name="Country">Belgium</column>
        <column name="City">Leuze</column>
        <column name="Signup_date">2012-03-26 04:02:37</column>
        <column name="Channel">SEO</column>
    </table>
 </database>

to this format: 这种格式:

     <dataset>
      <Cust CustomerID="1" Name="Roth Farrell" Age="50" Country="Canada" City="Fermont" Signup_date="2012-04-26 17:34:13.0" Channel="Coupon"/>
<Cust CustomerID="3" Name="Randall Mosley" Age="20" Country="Belgium" City="Leuze" Signup_date="2011-05-14 05:02:37.0" Channel="SEO"/>

      </dataset>

I am new to XSLT, How can I do this with XSLT? 我是XSLT的新手,如何使用XSLT做到这一点?

thanks 谢谢

Use 采用

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

<xsl:template match="table[@name = 'Customer']">
  <Cust>
    <xsl:apply-templates select="column"/>
  </Cust>
</xsl:template>

<xsl:template match="column">
  <xsl:attribute name="{@name}">
     <xsl:value-of select="."/>
  </xsl:attribute>
</xsl:template>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM