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);

    结果打印:

  • 相关阅读:
    【HCIE-RS_TAC诊断5-2】
    【HCIE-RS_TAC诊断5-1】
    【HCIE-RS_TAC诊断4】
    【HCIE-RS_TAC诊断3】
    【HCIE-RS_TAC诊断2】
    华为ICT大赛辅导——双AC主备双链路备份
    shell 函数与内置变量
    CF505E Mr. Kitayuta vs. Bamboos
    CF559E Gerald and Path
    CF538H Summer Dichotomy
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/9304232.html
Copyright © 2011-2022 走看看