有关此主题的许多问题已得到解答,但是我似乎无法通过适应它们来解决问题,因此我将不得不再次询问。
我有这个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>
怎么了?