由于项目是基于
b/s结构,因为在pc端上是没有客户端这概念只有浏览器,而对于web与移动端的关系,实际上还是类似于
C/S结构,因此web端与web端的通信是通过发送HTML5标签来实现,常规的做法中pc端与移动端是通过数据文本、文件来通信来交流信息的而非HTML5标签。
解决方案:
为了解决通信的矛盾,一般有两个思路:(1)后台根据发送目标来匹配发送数据。(2)适配传输内容。
思路一基于现有的条件来说实现难度大,而且不大现实。而思路二,也有一定的实现难度,但较思路一要现实,因此选择思路二。
思路二的具体实现方案有两种,方案一是基于文本发送,前端收到文本信息后再封装成html5标签进行显示,而移动端直接接受显示。方案二是html5标签,web端直接显示,移动端解析显示。
项目需要,选择方案二。
Hpple
hpple,它是一个轻量级的包装框架,可以很好的解决这个问题,尤其是它支持HTML的解析,是其他XML类库所不及的地方,它是用XPath来定位和解析HTML或者XML。githut下载地址
XPath定位原理
Xpath将xml的文档结构视为一个树形结构,元素、属性、文本、注释以及处理指令都是这个树形结构上的节点,对于xml文档中元素、属性、文本、注释以及处理指令的访问实际上是按顺序遍历这棵树,使用Xpath的路径表示法,可以定位到XML文档中的一个节点或者节点集合。
在Xpath中,可以使用相关标识来定位元素以及其属性,这些标识符关键字主要有:child、self、parent、descendant、attribute等。
child为默认标识符,self表示当前节点,parent表示上一级节点。
descendant表示当前子孙节点,attribute表示当前节点的属性。