2015-10-20 59 views
0

我的Ipad上有一个应用程序,该应用程序使用xml导出数据。我想将这个文件导入到MS Access 2007中,但这是不可能的(我猜是由于使用了属性)我想当我可以安排一个XSL文件来将这个属性转换为元素时,导入将会起作用。我从互联网上尝试了很多XSL文件,他们都没有工作到现在。谁能帮我?创建xsl文件以将属性xml转换为元素xml以便导入到访问中

件XML文件的右侧从iPad:

<?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">[email protected]</field> 
<field name="ShortText">Dit is een test</field> 
<field name="Actions">Geen verdere acties nodig</field> 
</record> 
</form> 

因此,这必须导入访问,我想用一个XSL文件。感谢您的帮助!

+0

没有起码你想要的XML格式和一些指示你已经开始自己解决这个问题,并且被困在某个难以回答的地方。 – Tomalak

回答

1

在我看来,这个问题在这里如何属性转换成元素,而是如何重新命名已经存在的field元素被他们name属性给出的名字。

警告:我对MS Access几乎一无所知,因此我可能很容易就此错误。请尝试以下转变:

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

将其应用到您的输入示例将结果:

<?xml version="1.0" encoding="UTF-8"?> 
<table> 
    <row> 
     <Date>2015-10-14</Date> 
     <Hospital>OLVG</Hospital> 
     <ID>1</ID> 
     <VisitType>Handover</VisitType> 
     <Specialisation>SYS1</Specialisation> 
     <ContactName>Nick</ContactName> 
     <ContactTel>0365425653</ContactTel> 
     <ContactMail>[email protected]</ContactMail> 
     <ShortText>Dit is een test</ShortText> 
     <Actions>Geen verdere acties nodig</Actions> 
    </row> 
</table> 
+0

作品完美!谢谢迈克尔! – Lex

相关问题