Xml Access导出上的XSL转换
我正在尝试对date进行xsl转换。我可以对一个日期列进行转换,但不能对所有日期列进行转换 我需要将所有datetime转换为yyyy-mm-dd格式或其他没有时间的格式 这是我的XMLXml Access导出上的XSL转换,xml,ms-access,xslt,export,Xml,Ms Access,Xslt,Export,我正在尝试对date进行xsl转换。我可以对一个日期列进行转换,但不能对所有日期列进行转换 我需要将所有datetime转换为yyyy-mm-dd格式或其他没有时间的格式 这是我的XML <dataroot xmlns:od="urn:schemas-microsoft-com:officedata"> <VYKRESY_TABULKA> <NAZEV>OBJIMKA DIL 2</NAZEV> <
<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>
OBJIMKA DIL 2
3.
E1388
W3651
2014-06-19T00:00:00
2014-06-19T00:00:00
2014-06-19T00:00:00
2014-06-19T00:00:00
R
D
这段代码可以工作,但只适用于一个专栏,我不知道如何将其组合在一起。我不知道怎么做
<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>
我发现这个网站不起作用,因为列没有像datetime那样标记。
请帮助我完成此转换。简单地说:
XSLT1.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>
天哪!太简单了!非常感谢你!我试过这么疯狂的密码。我向你致意。