创建xsl文件以将属性xml转换为元素xml以导入到访问中

时间:2015-10-20 15:52:41

标签: xml ms-access xslt import

我的Ipad上有一个用xml导出数据的应用程序。我想将此文件导入MS Access 2007,但它不可能(我想由于使用了属性)我想当我可以安排一个XSL文件将这个属性转换为元素时,导入将起作用。我尝试了很多来自互联网的XSL文件,直到现在都没有。任何人都可以帮助我吗?

来自ipad的一段XML文件:

<?xml version="1.0"?>
<form name="AppVIEW">
<field name="Date" type="date"/>
<field name="Hospital" type="text"/>
<field name="ID" type="text"/>
<field name="VisitType" type="text"/>
<field name="Specialisation" type="text"/>
<field name="ContactName" type="text"/>
<field name="ContactTel" type="text"/>
<field name="ContactMail" type="text"/>
<field name="ShortText" type="text"/>
<field name="Actions" type="text"/>
<record name="OLVG">
<field name="Date">2015-10-14</field>
<field name="Hospital">OLVG</field>
<field name="ID">1</field>
<field name="VisitType">Handover</field>
<field name="Specialisation">SYS1</field>
<field name="ContactName">Nick</field>
<field name="ContactTel">0365425653</field>
<field name="ContactMail">Nick@new.nl</field>
<field name="ShortText">Dit is een test</field>
<field name="Actions">Geen verdere acties nodig</field>
</record>
</form>

所以这必须导入访问,我想用XSL文件。万分感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

在我看来,这里的问题是如何将属性转换为元素,而是如何将已存在的field元素重命名为{{1}给出的名称属性。

警告:我对MS Access几乎一无所知,所以我很容易对此有所了解。尝试以下转换:

XSLT 1.0

name

将此应用于输入示例的结果将是:

<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:strip-space elements="*"/>

<xsl:template match="/form">
    <table>
        <xsl:apply-templates select="record"/>
    </table>
</xsl:template>

<xsl:template match="record">
    <row>
        <xsl:apply-templates select="field"/>
    </row>
</xsl:template>

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

</xsl:stylesheet>