sp;ElemList:= Doc.getElementsByTagName (''varX''):
x:= StrtoIntDef(ElemList.item[0].text,0);
ElemList:= Doc.getElementsByTagName (''varY);
y:= StrtoIntDef(ElemList.item[0].text,0);
Response.content:= #10+#13+InttoStr(x+y) ;
end;
可以用多种方法来读取XML文档。Microsoft XML SDK中有很好的文档。服务器做好了。XML被用来传递变量,而不只是x和y这么简单。
DELPHI 5 与 SOAP 例子
不用等Delphi 6,我们可以马上开始用SOAP工作。可以
下载SOAP Toolkit 2.0,在Delphi 5中创建Web service。在最后一个例子中,我们用它来实现Webcalculator。
第一步,创建一个提供服务的COM对象。然后,构造一个WSDL(Web Service Description Language,Web服务描述语言)文件,用于Web services。幸运的是我们可以用SOAP Toolkit 2.0自动创建这些文件。最后一步,开发一个Delphi应用
程序,它将使用服务。这样,我们要通过Delphi控制SOAP客户端。
开始。第一个任务是创建简单的COM对象。它只有一个接口和一个方法:GetSum。
ISummer = interface(Idispatch)
function GetSum(const x: WideString; const y: WideString): WideString;
safecall;
function TSummer.GetSum(const x, y: WideString): WideString;
begin
Result:= InttoStr(SysUtils.StrtoInt(x)+ SysUtils.StrtoInt(y);
end;
{和前一个例子差不多,是吧?像做一个Active Server Object一样。用Delphi写简单ASP的方法。编译为ActiveX Dll,发布到ASP文件:}
Set DelphiASPObj = Server.CreateObject("Project1.Summer")
Response.Write ( DelphiASPObj.GetSum(Request.QueryString.Item("x"),
Request.QueryString.Item("y")))
Set DelphiASPObj = Nothing
Response.End
图二 我们的COM Webcalculator,提供Web service
如果不出意外的话,
计算机可以开始工作了。在浏览器中输入http://localhost/scripts/webcalculator.asp?x=3&y=8之类的地址,应该返回
答案了。
接下来,安装SOAP Toolkit。
下载地址:Microsoft - msdn-files/027/001/580/msdncompositedoc.xml。然后,从Toolkit菜单中选择WSDL生成器(generator)。输入服务名,ActiveX Dll的名称,还有生成WSDL、WSML的web目录。
最后,用三行代码创建客户端:
procedure TForm1.Button1Click(Sender: Tobject);
var
SoapClient: OleVariant;
SoapClient := CreateOleObject(''MSSOAP.SoapClient'');
begin
SoapClient.mssoapinit(''http://localhost/scripts/sumservice.wsdl'',''SumService'',''SummerSoapPort'');
showmessage(SoapClient.GetSum(Edit1.Text,Edit2.Text));
end;
搞掂啦。恭喜恭喜!我们拥有了自己的SOAP Webcalculator!
很容易把这个例子移植到真实软件环境:比如,一个web service,用来储存客户地址簿。
用Delphi 5、HTTP和XML就可以创建Web services。Import微软Simple Object Access Protocol(SOAP)Toolkit 2.0,使得这一切成为可能。下一版本的Delphi承诺百分之百支持SOAP,并能用这种新工具实现Web services。我们正在进入Web services时代,有一样是可以确定的:它将使我们--
程序员--的生活更加兴奋。