XML应用之Web Service

1.什么是web service?
Service:服务,在电脑安装一个软件(程序),可以为我们提供某些功能,就可以称之为服务。本地服务比较多。
Web:和本地相对应,在互联网上的。
Web service,通过互联网来提供某种服务。
本质就是通过网络调用其他网站的资源。
Web service vs 本地服务
本地服务的缺陷:
本地资源不足。很多数据和资料,本地得不到,只有向其他网站要。
成本因素。本地提供服务,往往是不经济的,使用专业网站的服务更便宜。
可移植性差。
Web Service的优势:
平台无关。不管你使用什么平台,都可以使用Web service。
编程语言无关。只要遵守相关协议,就可以使用任意编程语言实现Web service。
对于Web service提供者来说,部署、升级和维护Web service都非常简单
对于Web service使用者来说,可以轻易实现多种数据、多种服务的聚合(mashup),因此能够做出一些以前根本无法想像的事情。
重点关注两个东西:
SOAP
WSDL
(1).SOAP
SOAP:Simple Object Access Protocol,简单对象访问协议。
SOAP = XML + HTTP

如何操作呢?
Php提供了web service的扩展。
在这里插入图片描述
既然是扩展,我们需要开启才能使用。
在这里插入图片描述
(2).WSDL
Web Service Description Language : web 服务描述语言。
简而言之,就是xml文档。
3.使用web service实现航班查询
首先,看效果,如下:
在这里插入图片描述
(1).服务在哪儿
http://www.webxml.com.cn/zh_cn/web_services.aspx
在这里插入图片描述
Wsdl,其实就是一个xml文档,如下:
在这里插入图片描述
在这里插入图片描述
点击进来,看看呗,如下:
在这里插入图片描述
(2).获取所有的城市列表
使用准备好的airline.html,改名为airline.php,

查看soapclient 的构造方法,定义定义:
在这里插入图片描述
只需要传递一个wsdl文件,其实就是人家已经提供好的那个xml文档。
在这里插入图片描述
有了soapclient这个对象,我们就可以操作人家提供给我们的服务,说白了,可以调用人家开发的两个方法。
在这里插入图片描述
注意查看结果:
在这里插入图片描述
其实,通过调用对象的属性,就可以获取,得到的结果是一个字符串,字符串的内容是xml文档。
使用simplexml来完成查询即可。
为了让大家能看清楚,将字符串数据保存为xml文档,然后进行格式化,如下:
在这里插入图片描述使用children方法,就可以了
在这里插入图片描述
在这里插入图片描述
然后,在对应点位置,输出城市,如下:
在这里插入图片描述
最终效果如下:
在这里插入图片描述
(3).查询航班
查看getDomesticAirlinesTime 方法说明
在这里插入图片描述
编写代码如下:
在这里插入图片描述
查看结果,如下:
在这里插入图片描述
将字符串保存为airline.xml,并格式化,结果如下:
在这里插入图片描述
编写代码如下:
在这里插入图片描述
在对应的位置,输出航班信息:
在这里插入图片描述
最终效果如下:

在这里插入图片描述