文档章节

PHP读取XML文件数据获取节点值

o
 osc_odyg6b92
发布于 2018/07/13 12:01
字数 441
阅读 16
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

最近在接入渠道的时候遇到接口返回是xml数据.现在接口数据返回json数据格式比较常见.

如何获取xml里面真正数据? 对象结果集合单个值的强制转换处理.(直接代码说明)

demo示例:  创建xml文件:test.xml,存放在和读取的php文件在相同级别目录下面.

xml文件:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <node>
3     <id>10001</id>
4     <userName>admin</userName>
5     <node>
6         <token>secretKey</token>
7     </node>
8 </node>

 

php文件:

 1 <?php
 2     $file = 'test.xml';
 3     //将XML中的数据,读取到数组对象中
 4     $xml_object=simplexml_load_file($file); 
 5 
 6     //全部对象结果集合
 7     //object(SimpleXMLElement)#1 (3) { ["id"]=> string(5) "10001" ["userName"]=> string(5) "admin" ["node"]=> object(SimpleXMLElement)#2 (1) { ["token"]=> string(9) "secretKey" } }
 8     var_dump($xml_object);
 9     echo '<pre>';
10 
11     //$xml_object->id对象值
12     //object(SimpleXMLElement)#2 (1) {[0]=>string(5) "10001"}
13     var_dump($xml_object->id);
14     echo '<pre>';
15 
16     //$xml_object->id对象值
17     //10001 (echo强制转换结果后获取值,注意:实际取值还需要在处理!)
18     echo($xml_object->id);
19     echo '<pre>';
20 
21     //强制转换字符串处理,对象单个值处理
22 //$xml_object->id对象值 23 //string(5) "10001" 24 var_dump((string)$xml_object->id); 25 echo '<pre>'; 26 27 //$xml_object->node->token对象值 28 //string(9) "secretKey" 29 var_dump((string)$xml_object->node->token);

 

结果打印:

 

通过上面的解释,我们也可以使用另一种方法获取xml节点值的数据问题:  json_encode() 对象转成json, json_decode() json再转成数组 .  获取数组直接处理数据就简单. 

demo实例:

 1 <?php
 2     $file = 'test.xml';
 3     //将XML中的数据,读取到数组对象中
 4     $xml_object=simplexml_load_file($file); 
 5 
 6     $xml_json=json_encode($xml_object);//对象转成json 
 7     $xml_arr=json_decode($xml_json,true);//json再转成数组
 8 
 9     echo "<pre>";
10     var_dump($xml_arr);

 

结果打印:

 

o
粉丝 1
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
5.9K
18
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
593
1
CDH5: 使用parcels配置lzo

一、Parcel 部署步骤 1 下载: 首先需要下载 Parcel。下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中。 2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩。 3 激...

cloud-coder
2014/07/01
6.8K
1
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22
Nutch学习笔记4-Nutch 1.7 的 索引篇 ElasticSearch

上一篇讲解了爬取和分析的流程,很重要的收获就是: 解析过程中,会根据页面的ContentType获得一系列的注册解析器, 依次调用每个解析器,当其中一个解析成功后就返回,否则继续执行下一个解...

强子哥哥
2014/06/26
712
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在SQL Server中将多行文本合并为单个文本字符串?

问题: Consider a database table holding names, with three rows: 考虑一个包含名称的数据库表,该表具有三行: PeterPaulMary Is there an easy way to turn this into a single str......

富含淀粉
28分钟前
9
0
在JavaScript中生成特定范围内的随机整数? - Generating random whole numbers in JavaScript in a specific range?

问题: 如何可以生成两个指定的变量之间的随机整数在JavaScript中,例如x = 4和y = 8将输出任何的4, 5, 6, 7, 8 ? 解决方案: 参考一: https://stackoom.com/question/6PRz/在JavaScript中...

fyin1314
58分钟前
8
0
Vim清除最后一个搜索突出显示 - Vim clear last search highlighting

问题: Want to improve this post? 想要改善这篇文章吗? Provide detailed answers to this question, including citations and an explanation of why your answer is correct. 提供此问题......

技术盛宴
今天
23
0
马化腾每天刷 Leetcode?代码你打算写到几岁?

本文作者:o****0 前几天,一张未证真伪的截图流传,图中显示马化腾几乎每天都会在 Leetcode 上提交代码。 截图还贴出一个 Leetcode 账户地址。该地址的头像已从马化腾的照片换成腾讯 logo,...

百度开发者中心
前天
13
0
滴滴 3000+ Kylin Cube 背后的实践经验揭秘

本次分享主要有三个部分:Kylin 在滴滴的整体应用、架构的实践经验、滴滴全局字典最新版本的实现以及 Kylin 最新实时 OLAP 探索经验分享。 Kylin 在滴滴的应用&架构 Kylin 在滴滴的三类应用场...

浪尖聊大数据
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部