gpt4 book ai didi

c# - 更改要导入到 Access 数据库的 Xml 的结构

转载 作者:行者123 更新时间:2023-11-28 17:41:11 25 4
gpt4 key购买 nike

我需要更改以属性为中心的 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>

编辑* 所需的输出代码:

<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>

关于c# - 更改要导入到 Access 数据库的 Xml 的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24084455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com