PHP读取XML文件数据获取节点值
最近在接入渠道的时候遇到接口返回是xml数据.现在接口数据返回json数据格式比较常见.
如何获取xml里面真正数据? 对象结果集合单个值的强制转换处理.(直接代码说明)
demo示例: 创建xml文件:test.xml,存放在和读取的php文件在相同级别目录下面.
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<node>
<id>10001</id>
<userName>admin</userName>
<node>
<token>secretKey</token>
</node>
</node>
php文件:
<?php
$file = 'test.xml';
//将XML中的数据,读取到数组对象中
$xml_object=simplexml_load_file($file); //全部对象结果集合
//object(SimpleXMLElement)#1 (3) { ["id"]=> string(5) "10001" ["userName"]=> string(5) "admin" ["node"]=> object(SimpleXMLElement)#2 (1) { ["token"]=> string(9) "secretKey" } }
var_dump($xml_object);
echo '<pre>'; //$xml_object->id对象值
//object(SimpleXMLElement)#2 (1) {[0]=>string(5) "10001"}
var_dump($xml_object->id);
echo '<pre>'; //$xml_object->id对象值
//10001 (echo强制转换结果后获取值,注意:实际取值还需要在处理!)
echo($xml_object->id);
echo '<pre>'; //强制转换字符串处理,对象单个值处理
//$xml_object->id对象值
//string(5) "10001"
var_dump((string)$xml_object->id);
echo '<pre>'; //$xml_object->node->token对象值
//string(9) "secretKey"
var_dump((string)$xml_object->node->token);
结果打印:
通过上面的解释,我们也可以使用另一种方法获取xml节点值的数据问题: json_encode() 对象转成json, json_decode() json再转成数组 . 获取数组直接处理数据就简单.
demo实例:
<?php
$file = 'test.xml';
//将XML中的数据,读取到数组对象中
$xml_object=simplexml_load_file($file); $xml_json=json_encode($xml_object);//对象转成json
$xml_arr=json_decode($xml_json,true);//json再转成数组 echo "<pre>";
var_dump($xml_arr);
结果打印:
PHP读取XML文件数据获取节点值的更多相关文章
- C#读取xml文件指定节点下的值
#region 读取xml文件指定节点下的值 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(result); XmlNode root ...
- C#中读取xml文件指定节点
目录(?)[-] XmlDocumentSelectSingleNode方法的使用 XmlDocumentSelectNodes方法的使用 通过节点属性查找指定节点 参考:Select XML N ...
- 读取xml文件中节点
/// <summary> /// /// </summary> /// <param name="xmlpath">节点路径</para ...
- 读取XML文件的节点内的内容
<?xml version="1.0" encoding="utf-8" ?> <data> <tag3>15</ta ...
- .net中读取xml文件中节点的所有属性信息
功能描述: 将数据以xml的格式记录成配置文件,需要获取配置文件中的数据时,则获取对应的配置文件,读取配置文件里对应节点的所有属性. 逻辑实现: 1.将数据配置好在xml文件中. 2.获取xml文件中 ...
- C#读取XML文件并取值
1.新建XML文件: <?xml version="1.0" encoding="utf-8" ?> <SystemInfo> < ...
- pyqt5_实例:修改xml文件中节点值
需求: 将类似如下xml文件的externalid节点值修改成不重复的值 实现该功能的代码Func.py: #coding=utf-8 ''' Created on 2019年10月15日 @auth ...
- java Domj4读取xml文件
先概括,再以代码形式给出. 获取节点: Iterator Element.nodeIterator(); //获取当前标签节点下的所有子节点 获取 标签: Element Document.get ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
随机推荐
- 浅谈矩阵加速——以时间复杂度为O(log n)的算法实现裴波那契数列第n项及前n之和使用矩阵加速法的优化求法
首先请连矩阵乘法乘法都还没有了解的同学简单看一下这篇博客: https://blog.csdn.net/weixin_44049566/article/details/88945949 首先直接暴力求 ...
- 前端005/React生命周期
ES6中React生命周期 一.React生命周期 React生命周期主要包括三个阶段:初始化阶段.运行中阶段和销毁阶段. 在React不同的生命周期里,会依次触发不同的钩子函数. 二.React的生 ...
- mybatis001-动态标签Trim用法
Mybatis动态标签Trim用法 一.<trim></trim>标签用法 示例一: select * from user <trim prefix="WHER ...
- Jmeter使用SSL(HTTPS协议)
Jmeter是apache一款开源.小巧的性能测试工具,平时测试web http协议经常使用,其实jmeter同样支持ssl.方法如下: 需要装有目标网站证书的密钥库,即testclient.keys ...
- eclipse中常用的快捷键【开发常用到的】
1.全部选中:Ctrl+A 2.剪切Ctrl+X.复制Ctrl+C.粘贴Ctrl+V.保存Ctrl+S 3.撤销Ctrl+Z.取消撤销Ctrl+Y 4.规范代码:Ctrl+Shift+F 5.将代码更 ...
- Centos6.8忘记MySQL数据库root密码解决方法
一.更改MySQL配置文件my.cnf,跳过密码验证. 编辑配置文件/etc/my.cnf文件,在[mysqld]下面添加skip-grant-tables,保存退出.如图: vim /etc/my. ...
- C# DataSet转JSON
经常会遇到系统数据交互采用JSON数据格式进行交互的,避免不必要的重复工作,记录下自己的处理方式. 获取数据集之后,通过函数对数据集信息进行整理通过.Net Framework3.5提出的JavaSc ...
- arcgis server地图服务切片(10.4.1)
首先要发布地图服务,过程略 首先,熟悉arcgis server的人应该知道,最直接的切片方式操作方法是在“服务属性”中设置切片,但这种方式可操作性太差,很多设置无法实现,因此不推荐 下面正式开始,打 ...
- c#用log4Net将日志写入到Oracle数据库,并写入到文件中
原文:c#用log4Net将日志写入到Oracle数据库,并写入到文件中 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:/ ...
- swift实现线程安全的栈和队列
实现一个线程安全的栈 这里使用数组来存储栈的数据.不足之处在于本例中的Stack可以无限扩容,更好的是初始化时候指定一个最大容量,防止不断扩容申请内存导致内存不够的问题.这里的线程安全使用一个串行队列 ...