1

每次我尝试使用转换日期时msxsl:format-date(@testDate, 'MM-dd-yyyy') 都会得到一个空字符串......

但是,如果我只是打电话,<xsl:value-of select="AcessDate"/>那么我确实得到了约会......我错过了什么?这不像是我没有通过 X-PATH 导航到正确的元素?

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:for-each select="//SelectFairWarningInformationResult">
  <!--<xsl:variable name="AccessDate" select="AcessDate"/>-->
  <xsl:value-of select="msxsl:format-date(@test, 'MM-dd-yyyy')"/> | <xsl:value-of select="Acess"/> | <xsl:value-of select="PatName"/> | <xsl:value-of select="PatFName"/> | <xsl:value-of select="PatID"/> | <xsl:value-of select="UID"/> | <xsl:value-of select="ULName"/> | <xsl:value-of select="UFName"/>  | View Record&#10;
</xsl:for-each>
4

1 回答 1

1

如果您使用像 Saxon 9 或 AltovaXML 或 XmlPrime 这样的 XSLT 2.0 处理器,那么您可以并且应该使用XSLT 2.0 定义的format-date 函数来格式化日期值。

您尚未msxsl在代码中向我们展示前缀绑定到哪个 URI,但我假设您正在尝试使用 Microsoft XSLT 1.0 处理器 MSXML 6 支持的专有扩展功能。我不希望其他 XSLT 供应商支持该功能,特别是 XSLT 2.0 处理器,因为 XSLT 2.0 标准支持模式xs:datexs:dateTime数据类型,并且也具有相应的格式化功能。

使用 XSLT 2.0 我认为您可以使用format-date(@test, "[M01]-[D01]-[Y0001]"). 以您可能需要调整的示例为例,恐怕我不知道具体做什么msxsl:format-date

于 2013-04-16T15:43:34.743 回答