代码之家  ›  专栏  ›  技术社区  ›  raspi

如何使用Xsltprocessor中的嵌入式exslt?

  •  1
  • raspi  · 技术社区  · 15 年前

    xsltprocessor::hasexsltsupport()返回true。现在我需要修改什么才能使用它?

    我有

    <xsl:stylesheet version="1.0" 
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:date="http://exslt.org/dates-and-times"
                    extension-element-prefixes="date">
    

    改变我想做的事情:

     <td>
       <xsl:value-of select="date:format-date(translate(property[@name='changedate']/value, ' ', 'T'), 'd.m.y h:i')" />
     </td>
    
    • 属性[@name='changedate']/值是来自SQL数据库的戳(yyyy-mm-dd hh:mm:ss)
    • 首先将该空间替换为t,以便 exslt date-format understands it
    • 更改*年-月-日***年-月-日

    错误:

    警告:xsltprocessor::transformToXML()[xsltprocessor.transformToXML]:xmlxpathcompopeval:函数日期绑定到未定义的前缀格式

    PHP版本5.2.9

    • 启用XSL
    • libxslt版本1.1.24
    • 根据libxml版本2.6.32编译的libxslt
    • 启用ExSLT
    • libexslt版本1.1.24
    2 回复  |  直到 15 年前
        1
  •  1
  •   raspi    15 年前

    我用这个把它修好了。它将日期信息移动到正确的位置。

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template name="FormatDate">
        <xsl:param name="DateTime" />
    
        <xsl:variable name="mo">
          <xsl:value-of select="substring($DateTime, 6, 2)" />
        </xsl:variable>
    
        <xsl:variable name="day">
          <xsl:value-of select="substring($DateTime, 9, 2)" />
        </xsl:variable>
    
        <xsl:variable name="year">
          <xsl:value-of select="substring($DateTime, 1, 4)" />
        </xsl:variable>
    
        <xsl:variable name="time">
          <xsl:value-of select="substring($DateTime, 12, 8)" />
        </xsl:variable>
    
        <xsl:variable name="hh">
          <xsl:value-of select="substring($time, 1, 2)" />
        </xsl:variable>
    
        <xsl:variable name="mm">
          <xsl:value-of select="substring($time, 4, 2)" />
        </xsl:variable>
    
        <xsl:value-of select="$day" />
        <xsl:value-of select="'.'" />
        <xsl:value-of select="$mo" />
        <xsl:value-of select="'.'" />
        <xsl:value-of select="$year" />
    
        <xsl:value-of select="' '" />
    
        <xsl:value-of select="$hh" />
        <xsl:value-of select="':'" />
        <xsl:value-of select="$mm" />
    
      </xsl:template>
    </xsl:stylesheet>
    
        2
  •  0
  •   Pavel Minaev    15 年前

    “以下扩展函数不被认为是稳定的,并且不是exslt-日期和时间的核心部分。声称支持exslt的处理器-日期和时间可能不支持这些功能。”-这适用于 format-date 也。