使用XSL转换将XML导入Access

时间:2018-07-24 13:03:06

标签: xml ms-access xslt

有关此主题的许多问题已得到解答,但是我似乎无法通过适应它们来解决问题,因此我将不得不再次询问。

我有这个XML文件:

 <ARTICLE CREATION_DATETIME="2018-07-02T17:38:25.0330824+02:00" PROD_DATE="2018-07-02T00:00:00" VALID_DATE="2018-07-02T00:00:00" xmlns="http://www.hcisolutions.ch/index">
  <ART DT="2018-06-20T00:00:00+02:00">
    <PHAR>0103504</PHAR>
    <PHARMACODE>103504</PHARMACODE>
    <GTIN>7680379690281</GTIN>
    <ARTNO>103504</ARTNO>
    <GRPCD>M1</GRPCD>
    <CDSO1>03.00.00.00</CDSO1>
    <PRDNO>17437</PRDNO>
    [...goes on for miles...]
    <ARTPRI>
      <VDAT>2018-01-01T00:00:00+01:00</VDAT>
      <PTYP>PEXF</PTYP>
      <PRICE>10.55</PRICE>
    </ARTPRI>
  </ART>
  <ART> [...]

我想将PHARMACODE属性添加到ARTPRI子节点,以便在导入到Access之后可以在主ART表和子ARTPRI表之间建立链接。

所需的输出:

      <ART DT="2018-06-20T00:00:00+02:00">
        <PHAR>0103504</PHAR>
        <PHARMACODE>103504</PHARMACODE>
        <GTIN>7680379690281</GTIN>
        <ARTNO>103504</ARTNO>
        <GRPCD>M1</GRPCD>
        <CDSO1>03.00.00.00</CDSO1>
        <PRDNO>17437</PRDNO>
        [...goes on for miles...]
        <ARTPRI>
          <PHARMACODE>103504</PHARMACODE>
          <VDAT>2018-01-01T00:00:00+01:00</VDAT>
          <PTYP>PEXF</PTYP>
          <PRICE>10.55</PRICE>
        </ARTPRI>
[...goes on for miles...]

适应于我发现的有关该主题的各种答案,这是我实际的XSL文件,该文件什么也不做(据我所知):

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="ARTPRI">
    <xsl:copy>
      <xsl:apply-templates select="@*"/>
      <xsl:copy-of select="ancestor::ART/PHARMACODE"/>
      <xsl:apply-templates select="node()"/>
    </xsl:copy>
</xsl:template>
</xsl:stylesheet>

怎么了?

0 个答案:

没有答案