• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php操作dom,simplexml、xpath对xml的读取,以及xml作为数据传输接口的使用的认识 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

php操作xml文档取数据【php对xml的解析】

1.php操作DOM【Document Object Model】 每一个文档从根节点开始构成一个树状模型【DOM】

DOM文档类: DOMDocument:文档类 DOMNodeList:节点列表类 DOMNode:节点类 DOMElement:元素类

这四个类就可以针对DOM文档进行操作

2.操作DOM对象

(1)创建DOM对象: $dom = new Document();//对对象的版本,编码进行限制 (2)加载xml文件 $dom->load();//加载指定的xml文件 (3)对节点上的数据进行选取【也可以进行操作】 【操作节点相对而言,比直接进行读取要难。对节点的操作就是将节点之间建立关系进行操作】 【http://www.ogeek.net/article/21472.htm】

这里php操作节点的行为和js操作html节点实现页面结构的更改类似【实质上使因为document文档的节点本身的原因,导致了操作该文档的语法大致相同】 【对节点的增删改查的操作需要注意】

两个php常用的函数库 PHP DOM:对document的操作【增删改操作】 SimpleXML:查询操作

3.SimpleXML:遍历文档的速度非常快【调接口常用】

(1)读取数据: SimpleElement simplexml_load_file()【从一个xml文件中读取数据】返回的不是php内部的数据类型,而是一个【simplexml的】实例【也不是对象和资源】 SimpleElement::__construct()【从一个xml字符串中读取数据】

(2)载入数据之后,对数据进行处理 所有的simplexml库中对数据节点的读取方法

【自己写数据接口:将xml格式的数据输出到客户端就是接口】 生成xml信息【两种,拼接字符串和生成接口文件(使用header将文件类型规定)】 对节点进行添加【或者加属性】来生成接口

 

4.xpath 【http://www.w3school.com.cn/xpath/】 xpath是一种在xml文档中查找属性和元素的方法。【还是需要载入相应文件】 xpath语法类似:在一个文件系统中定位文件【类似于使用路径的定位来获取文件】 xpath使用的语法:【单斜线和双斜线的区别】 /student:返回student元素的信息 //student:返回该元素中所有满足双斜线之后的规则的层级关系【相当于一种规则定义】

例子: $xml=simplexml_load_file('demo05.xml');

返回所有人的姓名 $data=$xml->xpath('/persons/person/name');//相当于将name元素匹配之后,置于data内 foreach ($data as $value){  echo $value.'<br>'; }

以上就是一个简单的xpath语法

使用复杂的xpath语法进行接口内的查询本身也没有太多的必要【不过需要注意这方面的匹配】

 

 

5.在线词典 就是ctrl+f对浏览器的功能 本地输入是一个表单,然后对服务器一次请求,服务器返回一组相应的数据【xml格式的结果】显示在搜索结果位置即可。 【一次ajax,一次结果数据的拼接过程】 即可完成

【接口的思路】 其实这里就是一个用作多个平台共有的数据操作的思路【也就是接口】,通过数据查询出的结果拼接成一个接口文件【分页】,然后各个平台根据接口文件进行针对性显示【虽然效率低,但是数据的处理和重复使用上,不错】

单引号和双引号: 关键是双引号内嵌入单引号的问题: 【在sql语句和xpath中使用】 双引号内的变量可以正常解析,但是由于sql语句和xpath中指明字段需要单引号【字符串类型】,所以那里加单引号。 $sql = "select * from '$table' where...";//这样的语法,即使变量外有单引号,也不影响变量的解析

 

以上就是关于xml操作的内容【注意接口的认知和simplexml库和xpath、PHP DOM来操作document节点的效果】


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
apache2不支持php文件解决办法发布时间:2022-07-10
下一篇:
Oauth2.0协议简介及php实例代码发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap