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 前言 最 ...
随机推荐
- window10 本地搭建SVN服务器
window10本地搭建SVN服务器教程:https://www.cnblogs.com/warmlight/p/11075644.html 我按照这篇教程成功搭建SVN服务器. 有个比较坑的地方是w ...
- 浅谈Java反射机制 之 获取类的 方法 和 属性(包括构造函数)
上一篇 获取 类 的字节码文件 我们讲到了获取类的字节码文件的三种方法 第三种方法通过getClass("全路径名")获取字节码文件最符合要求 1.获取构造方法 先贴上我们要获取的 ...
- IDEA怎样在3.0中修改彩色字体。
首先 找到 第一个File之后再找到Setting点击打开之后有Editor里面有colors和Fonts在下面是language defaults Semantic highligh ...
- [9期]软WAF上传绕过+webshell免杀
安全狗上传绕过 思路: 1.扰乱编码 form-data 替换成 ~form-data form-data 改成 f+orm-data form-data 改成 for ...
- (136)leetcode刷题Python笔记——只出现一次的数字
题目如下: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: ...
- linux shell中的正则表达式
正则表达式的使用 正则表达式,又称规则表达式.(英语:Regular Expression [ˈreɡjulə] 规则的 [ iksˈpreʃən] 表达 ),在代码中常简写为regex.regexp ...
- Mac下安装配置gradle
1.下载gradle2.解压3.获得gradle解压后的路径4.修改.bash_profile文件,配置环境变量 vi ~./bash_profile export GRADLE_HOME=/User ...
- 【转载】研发应该懂的binlog知识(上)
---------------------------------------------------------------------------------------------------- ...
- 对PInvoke函数函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。
C#引入外部非托管类库时,有时候会出现“对PInvoke函数调用导致堆栈不对称.原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配”的报错. 通常在DllImport标签内加入属性Call ...
- [BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并)
[BZOJ 1483] [HNOI2009] 梦幻布丁 (线段树合并) 题面 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1 ...