本文介绍了如何使用 XSLTProcessor 中的嵌入式 EXSLT?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

XSLTProcessor::hasExsltSupport() 返回真.现在我必须修改什么才能使用它?

XSLTProcessor::hasExsltSupport() returns true. Now what do I have to modify so I can use it?

我有

<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">

转变我正在尝试做的事情:

Transformation what I'm trying to do:

 <td>
   <xsl:value-of select="date:format-date(translate(property[@name='changedate']/value, ' ', 'T'), 'd.m.y h:i')" />
 </td>

  • property[@name='changedate']/value 是来自 SQL DB 的戳记 (yyyy-mm-dd hh:mm:ss)
  • 首先将该空格替换为 T,以便 exslt date-format 理解它
  • 更改 *yyyy-mm-dd***T***hh:mm:ss* -> dd.mm.yyyy hh:mm
  • 错误:

    警告:XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]:xmlXPathCompOpEval:函数日期绑定到未定义的前缀格式

    Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: xmlXPathCompOpEval: function date bound to undefined prefix format

    PHP 5.2.9 版

    PHP version 5.2.9

    • 启用 XSL
    • libxslt 1.1.24 版
    • libxslt 针对 libxml 版本 2.6.32 编译
    • 启用 EXSLT
    • libexslt 版本 1.1.24

    推荐答案

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

    I fixed it with this. It moves date information to correct positions.

    <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>
    

    这篇关于如何使用 XSLTProcessor 中的嵌入式 EXSLT?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-15 15:30