Access 导出的 XSL 转换

XSL transformation on Access export

我正在尝试对日期进行 xsl 转换。我可以对一个日期列芽进行转换,而不是对所有人进行转换。

我需要将所有日期时间转换为 yyyy-mm-dd 格式或其他不带时间的格式。

这是我的 XML

    <dataroot xmlns:od="urn:schemas-microsoft-com:officedata">
     <VYKRESY_TABULKA>
      <NAZEV>OBJIMKA DIL 2</NAZEV> 
      <FORMAT>3</FORMAT> 
      <CISLO_VYKRESU>E1388</CISLO_VYKRESU> 
      <TYP_STROJE>W3651</TYP_STROJE> 
      <SERIE>2014-06-19T00:00:00</SERIE> 
      <K1>2014-06-19T00:00:00</K1> 
      <K3>2014-06-19T00:00:00</K3> 
      <K46>2014-06-19T00:00:00</K46>
      <RIZENA_DOKUMENTACE>R</RIZENA_DOKUMENTACE> 
      <DRUH>D</DRUH> 
      </VYKRESY_TABULKA> 
    </dataroot>

此代码有效,但仅适用于一列,我不知道如何将它用于所有列。我不知道该怎么做。

    <xsl:template match="*">
    <xsl:param name="parentElm">
        <xsl:value-of select="name(..)" />
    </xsl:param>
    <xsl:choose>
        <xsl:when test="local-name() = 'SERIE'">
            <xsl:element name="SERIE">
                <xsl:call-template name="FormatDate">
                    <xsl:with-param name="DateTime" select="."/>
                </xsl:call-template>
            </xsl:element>
        </xsl:when>
        <xsl:otherwise>
            <xsl:element name="{local-name()}">
                <xsl:copy-of select="@*" />
                <xsl:apply-templates select="@* | node()" />
            </xsl:element>
        </xsl:otherwise>
    </xsl:choose> 
</xsl:template>
<xsl:template name="FormatDate">
    <xsl:param name="DateTime" />
    <xsl:variable name="date">
        <xsl:value-of select="substring-before($DateTime,'T')" />
    </xsl:variable>
    <xsl:if test="string-length($date) != 10">
        <xsl:value-of select="$DateTime"/>
    </xsl:if>
    <xsl:if test="string-length($date) = 10">
        <xsl:value-of select="$date"/>
    </xsl:if>
</xsl:template>

我发现这个网络芽不起作用,因为列没有像日期时间一样标记。 https://msdn.microsoft.com/en-us/library/ms256099%28v=vs.110%29.aspx

请帮我完成这个转换。

简单的怎么样:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

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

<xsl:template match="SERIE | K1 | K3 | K46">
    <xsl:copy>
        <xsl:value-of select="substring-before(.,'T')" />
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>