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