博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php操作dom,simplexml、xpath对xml的读取,以及xml作为数据传输接口的使用的认识...
阅读量:5319 次
发布时间:2019-06-14

本文共 1789 字,大约阅读时间需要 5 分钟。

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.jb51.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节点的效果】

转载于:https://www.cnblogs.com/shuoshuren/p/4290579.html

你可能感兴趣的文章
Newick format tree
查看>>
软件开发模型之瀑布模型
查看>>
Java 中 String的indexOf 的用法
查看>>
Android Studio打开出现:Default activity not found
查看>>
一次Linux系统被攻击的分析过程
查看>>
Java遗留问题
查看>>
Fugl-Meyer Assessment(FMA)
查看>>
音乐播放器制作(通过数据绑定切换图片)
查看>>
IntelliJ debug grails 无效的解决办法
查看>>
Base64编码
查看>>
01 div+css 为什么需要div+css布局
查看>>
黑马程序员——c语言学习心得——位运算符
查看>>
C# Icon转Byte , Byte转Icon
查看>>
博客开篇,数据转移
查看>>
spring boot 自学笔记(四) Redis集成—Jedis
查看>>
Android应用程序安装过程浅析
查看>>
Crazyflie 2.0 System Architecture
查看>>
用react native 做的一个推酷client
查看>>
B. Ohana Cleans Up(Codeforces Round #309 (Div. 2))
查看>>
Vim 简易配置
查看>>