我的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文件。万分感谢您的帮助!!
答案 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>