📄 xml技术系列讲座(9)客户机与服务器的数据交互(上) - fanqiang_com.htm
字号:
<TR>
<TD
class=a14><customer>5</customer></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14></customerorder></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>接下来,将XML数据添加到DOM树的<customer>元素之后。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>比如有如下的一个XML数据岛:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><xml id=“dsoOrder”></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><?xml version=“1.0”?></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><order></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><orderitem title=“Sushi, Anyone?”
isbn=“72-80081-025”></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><price>14.99</price>
</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14><quantity>2</quantity></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14></orderitem></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14></order></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14></xml></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>利用前面介绍的DOM技术访问<order>元素:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set docOrder =
dsoOrder.XMLDocument</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set nodeOrder =
docOrder.selectSingleNode(“//order”)</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14><order>元素是dsoOrder数据岛中的一部分,要把它添加到其他的DOM树中(比如前面的XML数据包),必须把<order>元素及其所有的后继节点进行备份,这是因为appendChild方法在把操作对象添加到其他DOM树中后,就从当前的DOM树中删除该对象!所以必须先调用cloneNode方法:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set nodeOrderToSend =
nodeOrder.cloneNode(True)</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>docSubmit.documentElement.appendChild
nodeOrderToSend</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>经过以上操作,最后形成的数据包为:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><?xml version=“1.0”?> </TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><customerorder></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14><customer>5</customer></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><order></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><orderitem title=“Sushi, Anyone?”
isbn=“72-80081-025”></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14><price>14.99</price></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14><quantity>2</quantity></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14></orderitem></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14></order></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14></customerorder></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B>4、XMLHTTP对象的Open方法</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>数据包构造完毕之后,就可以利用HTTP
Request对象把数据包发送给服务器。MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>创建XMLHTTP对象的语句如下:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set poster =
CreateObject(“Microsoft.XMLHTTP”)</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>对象创建后调用Open方法对Request对象进行初始化,语法格式为:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>poster.open http-method, url, async, userID,
password</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下表所示:</TD></TR>
<TR>
<TD class=a14>
<TABLE width="98%" border=1>
<TBODY>
<TR>
<TD width="18%">参数</TD>
<TD width="82%">说明</TD></TR>
<TR>
<TD width="18%">http-method</TD>
<TD width="82%">HTTP的通信方式,比如GET或是 POST</TD></TR>
<TR>
<TD width="18%">url</TD>
<TD width="82%">接收XML数据的服务器的URL地址。通常在URL中要指明
ASP或CGI程序</TD></TR>
<TR>
<TD width="18%">async</TD>
<TD
width="82%">一个布尔标识,说明请求是否为异步的。如果是异步通信方式,客户机就不等待服务器的响应;如果是同步方式,客户机就要等到服务器返回消息后才去执行其他操作</TD></TR>
<TR>
<TD width="18%">userID</TD>
<TD width="82%">用户ID,用于服务器身份验证</TD></TR>
<TR>
<TD width="18%">password</TD>
<TD
width="82%">用户密码,用于服务器身份验证</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>在下面这个例子中,客户机就是使用异步方式向“CustomerOrder.asp”页面发送了一个POST请求:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>poster.open "POST", "CustomerOrder.asp",
False</TD></TR>table>
<!--HTML_END--><BR><!-- 正文end --><BR>(http://www.fanqiang.com)<BR></FONT><BR><FONT
color=#999999><SMALL></SMALL></FONT><BR></TD></TR></TBODY></TABLE><BR></FONT></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
<TBODY>
<TR>
<TD align=middle width=620>
<TABLE cellSpacing=0 cellPadding=0 width=562 border=0>
<TBODY>
<TR>
<TD width=562>
<TABLE cellSpacing=0 cellPadding=0 width=562 border=0>
<TBODY>
<TR>
<TD></TD></TR>
<TR>
<TD height=10></TD></TR></TBODY></TABLE><!--结束:底部-->
<TABLE width=750 border=0>
<TBODY>
<TR>
<TD width="100%" bgColor=#d09f0d colSpan=5 height=2><IMG
height=1
src="XML技术系列讲座(9)客户机与服务器的数据交互(上) - fanqiang_com.files/c.gif"
width=1></TD></TR>
<TR>
<TD vAlign=top width="100%" colSpan=5 height=40>
<P align=center><FONT color=#ffffff>★ 樊强制作
欢迎分享 ★ </FONT></P></TD></TR></TBODY></TABLE>
<CENTER></CENTER></TR></TBODY></TABLE></TR></TBODY></TABLE></TR></TBODY></TABLE></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -