标题:求教:没用样式表,xmltocursor老是把数值1判定为逻辑真呢?
只看楼主
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
结帖率:66.67%
已结贴  问题点数:20 回复次数:4 
求教:没用样式表,xmltocursor老是把数值1判定为逻辑真呢?
提交判定原来取的服务器时间,老是有人改时间交报告。现改成取授时中心时间,问题来了,如果时间yyyy-mm-dd hh:mm:ss中有值为1时,把xml转cursor时老是判定为逻辑真,xmltocursor的各参数都看了也用了,还是没用,当然可以写判定类型来达到效果,就是不能理解问题出在哪儿,检查了返回的内容,返回数据也没有用schema样式表,不能理解,虽然VFP把大于0的值判定为真,为什么此处仅把1判为真,2018等等又判为数值,求问题所在或直接的处理方法,谢谢。
代码如下:
程序代码:
Procedure GetTimeByXML
    Set Date YMD
    Set Century On
    Set Hours To 24
    Set Mark To '-'
    Declare Sleep In Kernel32.Dll Integer
    Local xmlDoc,xmlRes,nReCount,lFlag,cTime,lDateTime,nDelay
    xmlDoc=Createobject('Microsoft.XMLDOM')
    XML.Async=.F.
    xmlRes=xmlDoc.Load('http://www.time.')
    If xmlRes
        nDelay=0
        Do While xmlDoc.readystate#4&&waiting for Ready
            =Sleep(200)
            nDelay=nDelay+1
            If nDelay=26&&Delay for 5s is allowed
                Return Ctod('')
            Endif
        ENDDO
        IF !EMPTY(xmldoc.xml)
        nReCount=Xmltocursor(xmlDoc.XML,'xmlcursor',0)
        ELSE
        RETURN CTOT('')
        endif
        If nReCount>0
            lFlag=.T.
            cTime=Str(xmlcursor.Year,4)+'-'+;
                STR(xmlcursor.Month,2)+'-'+;
                STR(xmlcursor.Day,2)+' '+;
                STR(xmlcursor.Hour,2)+':'+;
                STR(xmlcursor.Minite,2)+':'+;
                STR(xmlcursor.Second,2)
            lDate=Ctot(cTime)
        Endif
    Endif
    If !lFlag
        Return Ctod('')
    Endif
    Return ldate
Endproc

搜索更多相关主题的帖子: 样式表 XML If Return Str 
2018-12-18 19:49
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
得分:0 

如图,分钟处现在就是1分钟,查看结果数据确实是1,但函数把1处理成逻辑值了。
2018-12-18 19:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:10 
XmlDoc=CREATEOBJECT('Microsoft.XMLDOM')
XmlDoc.async=.F. &&设置同步下载
Ret=XmlDoc.Load('http://www.time.') &&读入XML文件(国家授时中心数据)
IF Ret=.T.
    XMLTOCURSOR(XmlDoc.xml,'tDatetime',0)
    SELECT tDatetime
    BROWSE
ENDIF


坚守VFP最后的阵地
2018-12-18 21:09
whinda
Rank: 6Rank: 6
等 级:贵宾
威 望:13
帖 子:253
专家分:418
注 册:2012-2-4
得分:0 
我似乎说是当有数值为1时判为真,没说大于1的数值。
2018-12-19 01:04
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:10 
直接读取xml文件相应位置的字符,再作转换处理就可以避免这个现象。

活到老,学到老! http://www. E-mail:hu-jj@
2018-12-22 10:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492111-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.139242 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved