如何将Excel电子表格导出到XML,但属性是否为元素?

时间:2011-07-23 12:28:23

标签: xml excel

我在此视图中将电子表格从Excel保存到XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<companies>
<company>
<employee>
<code>1</code>
<name/>
<street>14th street</street>
<houseno>1</houseno>
<areacode>1050 DD</areacode>
<place>NoWhere</place>
<phone>0100 987654</phone>
</employee>
</company>
</companies>

但我需要这个:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<companies>
<company>
<employee code="1" name="" street="14th street"  houseno="1" areacode="1050 DD" place="NoWhere" phone="0100 987654">
</employee>
</company>
</companies>

请告诉我如何解决问题?

2 个答案:

答案 0 :(得分:3)

这个XSLT 1.0样式表可以使用您的示例XML(try it here)。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output indent="yes" />

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

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

  <xsl:template match="employee/*">
    <xsl:attribute name="{name()}">
      <xsl:value-of select="." />
    </xsl:attribute>
  </xsl:template>

</xsl:stylesheet>

现在它取决于你的环境如何使用它。有几个工具和库可以提供XSLT支持。

答案 1 :(得分:1)

您可以通过XSLT转换XML数据。