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

如何使用msxml读取xsd:dateTime?

  •  2
  • Name  · 技术社区  · 16 年前

    我正在使用msxml解析xml文件。语言是C++。xml文件包含一些使用xsd:dateTime格式的日期和时间(类似于:2009-04-29T12:00:00Z)

    2 回复  |  直到 16 年前
        1
  •  1
  •   Tomalak    16 年前

    也许这对你有帮助: Using strptime to parse ISO 8601 formated timestamps 在加农炮上。网

        2
  •  0
  •   falstaff    15 年前

    <xsl:transform
    id="integra-transformer"
    version="1.0"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:date="urn:date-scripts">
    
    <xsl:output method="xml" indent="yes" />
    
    <msxsl:script 
        implements-prefix="date" 
        language="javascript">
        <![CDATA[
        Date.prototype.toISO8601ShortString = function () {
            var zeropad = function (num) { return ((num < 10) ? '0' : '') + num;  }
            var str = "";
            var date = new Date();
            str += date.getUTCFullYear();
            str += "-" + zeropad(date.getUTCMonth() + 1);
            str += "-" + zeropad(date.getUTCDate());
            str += "T" + zeropad(date.getUTCHours()) +
            ":" + zeropad(date.getUTCMinutes());
            return str;
        }
    
        function getToday()
        {
            var d;
            d = new Date();
            return(d.toISO8601ShortString());
        }
        ]]>
    </msxsl:script>
    
    
    <xsl:template match="/">
             <date>
                 <xsl:value-of select="date:getToday()"/>
             </date>
         </xsl:template>
     </xsl:transform>
    

    在执行转换之前,不要忘记启用脚本:

    xslDom.setProperty("AllowXsltScript", true)