我需要将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>
答案 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>