更改要导入Access数据库的Xml结构
本文关键字:Xml 结构 数据库 Access 导入 | 更新日期: 2023-09-27 18:07:00
我需要更改一个以属性为中心的XML文件,以便它适合导入到Access数据库中定义的列。
我一直在阅读XSLT以更改代码,但运气不好,输出仍然没有按我想要的方式提供表。
下面是XML代码:
<Database>
<ChildRecords>
<ChildRecord>
<TableName>Client</TableName>
<Columns>
<Column Name="id" Data="1234"/>
<Column Name="forename" Data="John"/>
<Column Name="surname" Data="Smith"/>
</Columns>
</Childrecord>
<ChildRecord>
<TableName>Product</TableName>
<Columns>
<Column Name="id" Data="4321"/>
<Column Name="description" Data="Bed"/>
<Column Name="price" Data="100"/>
</Columns>
</Childrecord>
</ChildRecords>
</Database>
EDIT*所需输出代码:
<Database>
<Client>
<id>1234</id>
<forename>John</forename>
<surname>Smith</surname>
</Client>
<Product>
<id>1234</id>
<description>Bed</description>
<price>100</price>
</Product>
</Database>
试试下面的样式表。它从您的输入示例中生成所需的输出(一旦更正格式良好!)。我不确定输出格式是否正确与多个记录的表。
XSLT 1.0<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<Database>
<xsl:for-each select="Database/ChildRecords/ChildRecord">
<xsl:element name="{TableName}">
<xsl:for-each select="Columns/Column">
<xsl:element name="{@Name}">
<xsl:value-of select="@Data" />
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</Database>
</xsl:template>
</xsl:stylesheet>