你需要做的是變換您的XML數據轉換成與接入工作更好的格式是什麼。具體來說,您需要在每個子節點中插入父鍵值(假設在這種情況下爲C_NOT
)。
下面的XSLT文件會爲你做
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<dataroot>
<xsl:apply-templates select="@*|node()"/>
</dataroot>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="NOTARIAS">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
<xsl:template match="NOTARIA">
<NOTARIA>
<C_NOT><xsl:value-of select="../../C_NOT"/></C_NOT>
<xsl:apply-templates select="@*|node()"/>
</NOTARIA>
</xsl:template>
</xsl:stylesheet>
,將改變從這個您XML ...
<NOTARIO>
<C_NOT>8404180</C_NOT>
<APE>Abalos Nuevo</APE>
<NOM>Francisco José</NOM>
<NOTARIAS>
<NOTARIA>
<PRO>23</PRO>
<MUN>0888</MUN>
<F_IN>1984-12-01</F_IN>
<F_FI>1986-09-19</F_FI>
</NOTARIA>
<NOTARIA>
<PRO>14</PRO>
<MUN>0569</MUN>
<F_IN>1990-09-17</F_IN>
<F_FI>1995-03-15</F_FI>
</NOTARIA>
<NOTARIA>
<PRO>21</PRO>
<MUN>0412</MUN>
<F_IN>1995-03-30</F_IN>
<F_FI></F_FI>
</NOTARIA>
</NOTARIAS>
</NOTARIO>
...這個:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot>
<NOTARIO>
<C_NOT>8404180</C_NOT>
<APE>Abalos Nuevo</APE>
<NOM>Francisco José</NOM>
<NOTARIA>
<C_NOT>8404180</C_NOT>
<PRO>23</PRO>
<MUN>0888</MUN>
<F_IN>1984-12-01</F_IN>
<F_FI>1986-09-19</F_FI>
</NOTARIA>
<NOTARIA>
<C_NOT>8404180</C_NOT>
<PRO>14</PRO>
<MUN>0569</MUN>
<F_IN>1990-09-17</F_IN>
<F_FI>1995-03-15</F_FI>
</NOTARIA>
<NOTARIA>
<C_NOT>8404180</C_NOT>
<PRO>21</PRO>
<MUN>0412</MUN>
<F_IN>1995-03-30</F_IN>
<F_FI />
</NOTARIA>
</NOTARIO>
</dataroot>
...在Access進行導入時在後臺進行。
將XSLT文件保存到您的硬盤(我稱之爲「transformio.xslt」),然後啓動Access XML導入過程。一旦你選擇了你的XML文件導入,點擊「轉換」按鈕...
...您的新創建的XSLT文件添加到列表中,選擇它...
當您單擊「確定」,返回到「導入XML」對話框中,可以展開樹視圖來查看,你現在有兩個表中C_NOT
值。
當導入完成後,仍然有兩個表,但現在你可以加入他們C_NOT
得到數據的「扁平化」的觀點:
這給我們提供