对XML的操作,哪个地方错了???

clbaddd 2005-10-28 10:36:43
向一个接口程序aa.asp发参数,然后返回一个XML包,我的程序如下:
<%
set xml = Server.CreateObject("microsoft.xmlhttp")
xml.open "post","aa.asp?name=xx&pwd=456",false '这行提示错误
xml.send str '发送一个空的值,因为这个接口只是要传name和pwd这两个参数过去
'接下来我该如何接收它返回的包呢?responseText只是返回了它的值,但我要分析这个包,该如何做呢??
%>
...全文
195 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisoon 2005-10-28
  • 打赏
  • 举报
回复
aa.asp?name=xx&pwd=456
这里加http://localhost/你的目录/aa.asp?name=xx&pwd=456
friendlyFour 2005-10-28
  • 打赏
  • 举报
回复
http://www.51js.com/viewthread.php?tid=45455
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
to:lisoon
程序运行时是有错误的,但我不知道错误是什么,麻烦你再看看
<%
set xml = Server.CreateObject("microsoft.xmlhttp")
xml.open "post","aa.asp?name=xx&pwd=456",false '''''''''这行提示错误'''''''
xml.send str '发送一个空的值,因为这个接口只是要传name和pwd这两个参数过去
'接下来我该如何接收它返回的包呢?responseText只是返回了它的值,但我要分析这个包,该如何做呢??
%>
lisoon 2005-10-28
  • 打赏
  • 举报
回复
你測試,把返回的值打印出來就會明白了。
aa.asp輸出什麽,這邊就接收什麽。
你用alert(str)就可以看到原信息了。
friendlyFour 2005-10-28
  • 打赏
  • 举报
回复
说实在的,我没有使用过你的那种方法,所以我没有办法解答你的问题。到网上搜索一下看看吧
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
楼上的兄弟,你的那个示例我看明白了,十分感谢,但我更想知道我的那个程序到底是什么地方错了,按那个方法做下来该怎么解析返回的包
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
仔细看看
friendlyFour 2005-10-28
  • 打赏
  • 举报
回复
不知道符不符合你的要求
friendlyFour 2005-10-28
  • 打赏
  • 举报
回复
放入wwwroot下,运行ltest.htm
friendlyFour 2005-10-28
  • 打赏
  • 举报
回复
【ltest.htm】
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META Http-Equiv="Content-Type" Content="text/html; charset=gb2312">
<SCRIPT LANGUAGE="JavaScript">
<!--
function GetMonth(){
//创建对象
data = new ActiveXObject("msxml");

//传人GetMonth.asp中以XML的方式返回。
data.URL = "传人GetMonth.asp?t1="+document.all.t1.value+"&t2="+document.all.t2.value;

//将GetMonth.asp中信息赋值给当前页面的变量。
if (data.root.children != null)
{
var DiffMonth=data.root.children.item(0).text;

}
alert(DiffMonth);
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="t1" value="2005-1-1"><BR>
<INPUT TYPE="text" NAME="t2" value="2005-2-1"><BR>
<INPUT TYPE="button" value="ok" onclick="GetMonth()">

</FORM>
</BODY>
</HTML>
--------------------------------------------------
【GetMonth.asp】
<%@ Language=VBScript %>
<%
Dim t1,t2
t1=Request.QueryString("t1")
t2=Request.QueryString("t2")
Dim strPsn
strPsn="<item>"

strPsn=strPsn&"<DateDiff>"&DateDiff("m",t1,t2)&"</DateDiff>"

strPsn=strPsn&"</item>"
%>
<?xml version="1.0" encoding="gb_2312-80"?>
<%=strPsn%>
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
楼上的兄弟,不好意思,我有点没看明白
friendlyFour 2005-10-28
  • 打赏
  • 举报
回复
function GetMonth(){
//创建对象
data = new ActiveXObject("msxml");

//传人GetMonth.asp中以XML的方式返回。
data.URL = "GetMonth.asp?t1="+document.all.t1.value+"&t2="+document.all.t2.value;

//将selectAccessoryType.asp中信息赋值给当前页面的变量。
if (data.root.children != null)
{
var DiffMonth=data.root.children.item(0).text;

}
alert(DiffMonth);
}
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
顶啊
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
顶啊
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
极度郁闷中!!!

用xml1.Load(xml.responseXML)也试了,同样的错误
另外我把Set xml1=Server.CreateObject("MSXML.DOMDocument")修改成了Set xml1=Server.CreateObject("MSXML2.DOMDocument")
xml1的属性都可以看的到,但就是xml1.selectSingleNode时出错
我加了这样一条语句response.write xml1.readyState,它显示的是4,这个是什么意思?

我把XML包修改了一下结点变到最少,成了这样:
<?xml version = "1.0" encoding="UTF-8"?>
<misc_command>
<name>bb</name>
<pwd>456</pwd>
</misc_command>
但是uname = xml1.selectSingleNode("//misc_command/name").text 时,仍然有错误,缺少对象
cndns 2005-10-28
  • 打赏
  • 举报
回复
xml.open "post","aa.asp?name=xx&pwd=456",false '这行提示错误
xml.send str '发送一个空的值,因为这个接口只是要传name和pwd这两个参数过去

post这个方法错了,应该是GET
最好区别一下大小写,呵呵.
另外,地址aa.asp?name=xx&pwd=456
你既然通过post方法,那么就应该把传递的参数放在send下面,open方法的地址最好不要带上这个参数.
lisoon 2005-10-28
  • 打赏
  • 举报
回复
xml1.Load(xml.responseXML)
有沒有用這個試下...
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
Set xml1=Server.CreateObject("MSXML.DOMDocument")
xml1.Load(xml.responseText)
'或者是
'xml1.load request
a1 = xml1.documentElement.selectSingleNode("//command/command_data/result_id").text
'如果加上documentElement就提示:缺少对象: xml1.documentElement
'如果不加就提示:缺少对象:xml1.selectSingleNode(...)
'包的结构是对的,就是这个样子的,但它老提示缺少对象,是不是创建的时候有错误??

lisoon 2005-10-28
  • 打赏
  • 举报
回复
<%
set xml = Server.CreateObject("msxml2.serverxmlhttp")
xml.open "post","http://localhost:8081/sso/aa.asp?name=bb&pwd=456",false
xml.send str
'发送成功了,xml.responseText也的确是返回的包的格式

'我用如下方法解析包,但会出错,可我以前用这种方法解析过XML数据包是可以的,哪错了??
Set xml1=Server.CreateObject("MSXML.DOMDocument")
xml1.Load(xml.responseXML)
a1 = xml1.documentElement.selectSingleNode("//command/command_data/result_id").text '这里会出错
response.write a1
'试下,不过你的包结构是什么样的,你根据自己的包去修改.
%>
clbaddd 2005-10-28
  • 打赏
  • 举报
回复
lisoon((水翡草芥--突然想去扫街))
老兄到哪里了?
加载更多回复(3)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧