努力创建相关的XSLT文件以转换为Access

时间:2019-01-09 09:56:05

标签: xml xslt

我需要将xml文件导入到MS Access中的表中。这些文件有多个标题,我只是不满意样式表的创建以能够转换数据...这个论坛上有很多很好的文章,但是正如我所说,我很努力地进入条款。我希望举一个实时的例子,有人可以将其“转换”为XSLT,以便实时数据对我有意义。

这是输入文件

      <?xml version="1.0" encoding="UTF-8"?>

-<INTERFACE_BATCH>


-<MATERIAL_ITEM>

<ERP_NUMBER>E371937</ERP_NUMBER>

<MAT_NUMBER>M000319339</MAT_NUMBER>

<PLANT>1AH</PLANT>

<PROCESS>NORMAL_CREATE</PROCESS>

<DELETE>N</DELETE>

<LONG_DES>KIT; TYPE PISTON, APPLICATION ENGINE, COMPRISING PINS; OEM P/N: 1202400Z26ND OEM BB MOTORS, MODEL/MACHINE NO: NISSAN UD460</LONG_DES>

<SHORT_DES>KIT;PISTON,ENGINE,PINS,1202400Z26ND</SHORT_DES>

<MAT_GROUP>EAA14</MAT_GROUP>

<MAT_TYPE>ERSA</MAT_TYPE>

<UOM>EA</UOM>

<STORAGE_LOCATION>0011</STORAGE_LOCATION>

<VALUATION_CLASS>3040</VALUATION_CLASS>

<LANGUAGE>EN</LANGUAGE>

<REQUESTOR_NAME>TMAKGETA</REQUESTOR_NAME>

<REQUESTOR_EMAIL>TMAKGETA@CCBAGROUP.COM</REQUESTOR_EMAIL>

<LAST_UPDATE_BY>WBEZUIDENHOUT</LAST_UPDATE_BY>


-<DESCRIPTOR>

<DESCRIPTOR_NAME>KIT</DESCRIPTOR_NAME>


-<DESCRIPTOR_PROPERTIES>


-<DESCRIPTOR_PROPERTY>

<DESCRIPTOR_PROPERTY_NAME>APPLICATION</DESCRIPTOR_PROPERTY_NAME>

<DESCRIPTOR_PROPERTY_VALUE>ENGINE</DESCRIPTOR_PROPERTY_VALUE>

<DESCRIPTOR_PROP_UOM>NOT APPLICABLE</DESCRIPTOR_PROP_UOM>

</DESCRIPTOR_PROPERTY>


-<DESCRIPTOR_PROPERTY>

<DESCRIPTOR_PROPERTY_NAME>COMPRISING</DESCRIPTOR_PROPERTY_NAME>

<DESCRIPTOR_PROPERTY_VALUE>PINS</DESCRIPTOR_PROPERTY_VALUE>

<DESCRIPTOR_PROP_UOM>NOT APPLICABLE</DESCRIPTOR_PROP_UOM>

</DESCRIPTOR_PROPERTY>


-<DESCRIPTOR_PROPERTY>

<DESCRIPTOR_PROPERTY_NAME>TYPE</DESCRIPTOR_PROPERTY_NAME>

<DESCRIPTOR_PROPERTY_VALUE>PISTON</DESCRIPTOR_PROPERTY_VALUE>

<DESCRIPTOR_PROP_UOM>NOT APPLICABLE</DESCRIPTOR_PROP_UOM>

</DESCRIPTOR_PROPERTY>

</DESCRIPTOR_PROPERTIES>

</DESCRIPTOR>


-<PART_DETAIL>

<PART_NO>1202400Z26ND</PART_NO>

<MANUF>2003476</MANUF>

<PART_TYPE>OEM</PART_TYPE>

</PART_DETAIL>

</MATERIAL_ITEM>

</INTERFACE_BATCH>

1 个答案:

答案 0 :(得分:0)

我终于正确了! :)

<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="INTERFACE_BATCH">
    <xsl:apply-templates select="@*|node()"/>
</xsl:template>

<xsl:template match="PART_DETAIL">
    <PART_DETAIL>
        <ERP_NUMBER><xsl:value-of select="../ERP_NUMBER"/></ERP_NUMBER>
        <xsl:apply-templates select="@*|node()"/>
    </PART_DETAIL>
</xsl:template>