以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  [心得]实现跨站数据共享,可能会遇到的问题集  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=6257)


--  作者:小鞋子
--  发布时间:3/28/2004 12:51:00 PM

--  [心得]实现跨站数据共享,可能会遇到的问题集
在存储服务器共享代码时使用XML会经常碰到如下问题:
问题1:XML DATA ISLAND的问题
为什么有XMLDomDocument对象做为数据岛的属性,而没有XMLHTTP作为数据岛的属性。
解决办法:等待下一IE版本或插件
问题2:XMLHTTP的RESPONSEXML怎么获得动态数据,为什么用调试器只能获得TEXT,

STREAM,BODY,XML却是空的,而我在服务器生成的是一标准XML文件。
查MSDN发现只能使用GET方法,并且是取一静态数据。
问题3:我写的<XML ID=X1 ASYNC=FALSE />这个同步属性在JS脚本调用时怎么不管

用。
解决办法:写一TIME函数判断状态READYSTATE=4,或者在脚本指定ASYNC=FALSE。
问题4:使用NODE保存函数,函数有<和>符号怎么办,又不想用替换,懒人思想。
解决办法:使用<![CDATE[ strHtml or strFunc ]]>它代表一个字符串类型。可以包

含一个长文本。
问题5:常见问题,我的XML出不来?
解决办法:检查生成或手写的XML是否有一个最外层嵌套标志<?xml

version="1.0"?><data>...data...</data>
问题6:如何把我在客户端写的任意数据打包让服务器接收并存成文本文件?用

REQUEST的哪个变量呢?遍历FORM吗?可不是FORM提交的。
解决办法:str=bytes2BSTR(Request.BinaryRead(Request.TotalBytes ))
bytes2BSTR是一函数,把二进制变为字符串
Function bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 +

CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
问题7:为什么XML状态在JAVASCRIPT里面不是字符串类型?非要使用VBSCRIPT才能调

用readyState<>"complete" ,在JAVASCRIPT写readyState!="complete" 竟然说它类

型不匹配。
解决办法:没办法,只有用VBSCRIPT了。也许是和机器IE有关,也许别人的机器就可

以通过。
问题8:很老的问题,为什么我设置禁止使用ACTIVEX,我的XML对象用不了?
解决办法:赶紧看看你的代码里面是不用有<OBJECT CLASSID=****>把它删了。那
XML怎么办?写命名空间<html xmlns=xml><STYLE>xml\:* {
BEHAVIOR: url(#default#XML)
}</STYLE>OK,这样就可以了,竟然可以跳过安全检查!好厉害!

问题9:最后一个,事不过9,这是新手问题,刚开始用XML,我怎么取出XML某个节点

数据?
data=spDatadso.XMLDocument.selectSingleNode("data/hsv2rgb").text
XML文件数据<data><hsv2rgb>hello</hsv2rgb></data>,
如果节点比较多怎么办?查帮助用childNodes对象,或者XSL。
好了,以上我估计都是些常见问题。
问题10:没办法,是别人碰到的,出现:
msxml3.dll 错误 '800c0007'
所需资源没有可用数据。
解决办法:xml.async =false加上它!!!
问题11:在HTML页面上也出现所需资源没有可用数据。
解决办法:加上xml.async =false也不管用,这是因为使用直接写HTML,不是用函数

调用的原因,加一定时器,setTimeout("loadxml",4000);也可自己加readyState这些

及时更新,方法很简单,我就不说了。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms