zoukankan      html  css  js  c++  java
  • PHP读取XML文件数据获取节点值

    最近在接入渠道的时候遇到接口返回是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);

    结果打印:

  • 相关阅读:
    软件测试人员的年终绩效考核怎么应对
    收藏
    顶踩组件 前后两版
    订阅组件
    hdu 1963 Investment 完全背包
    hdu 4939 Stupid Tower Defense 动态规划
    hdu 4405 Aeroplane chess 动态规划
    cf 414B Mashmokh and ACM 动态规划
    BUPT 202 Chocolate Machine 动态规划
    hdu 3853 LOOPS 动态规划
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/9304232.html
Copyright © 2011-2022 走看看