首页 > 编程语言 >PHP 将xml文件解析为数组

PHP 将xml文件解析为数组

时间:2022-08-22 20:58:24浏览次数:82  
标签:xml 解析 函数 json 字符串 Array PHP

SimpleXML扩展在解析和操作XML文档时非常实用,本文将讨论如何使用php SimpleXML解析xml文件。

首先,让我们看一下使用SimpleXML扩展将XML内容转换为数组所需遵循的步骤。

  • 将xml文件转换为字符串:  使用php file_get_contents()函数将整个xml文件作为字符串读取并存储到变量中。
  • 将字符串转换为对象: 将字符串转换为对象,可以通过PHP的一些内置函数simplexml_load_string()轻松完成。
  • 将对象转换为JSON:  json_encode()函数将对象,数组的数据格式转换为json格式的数据
  • 解码JSON对象:  json_decode()函数解码JSON字符串。它将JSON编码的字符串转换为PHP变量。

 

php解析xml文件需要使用到的函数

file_get_contents():

file_get_contents() 函数把整个xml文件读入一个字符串中

simplexml_load_string():

simplexml_load_string() 函数转换形式良好的 XML 字符串为 SimpleXMLElement 对象。

simplexml_load_file():

simplexml_load_file() 函数把 XML 文档载入对象中。如果失败,则返回 false。

json_encode():

json_encode函数主要用来将数组和对象,转换为json格式。

json_decode():

json_decode函数用于将json文本转换为相应的PHP数据结构.

 

PHP将xml文件解析为数组 - 示例

xml文件abc.xml如下:
<?xml version='1.0'?>
<userdb>
   <firstname name='Alex'>
      <symbol>AL</symbol>
      <code>A</code>
   </firstname>
      <firstname name='Sandra'>
         <symbol>SA</symbol>
         <code>S</code>
   </firstname>
</userdb>

php代码:

<?php
// xml file path
   $path = "abc.xml";
   $xmlfile = file_get_contents($path);
   $new = simplexml_load_string($xmlfile);
   $jsonfile = json_encode($new);
   $myarray = json_decode($jsonfile, true);
   print_r($myarray);
?>

运行结果:

Array
(
   [firstname] => Array
       (
           [0] => Array
               (
                   [@attributes] => Array
                       (
                           [name] => Alex
                       )
                   [symbol] => AL
                   [code] => A
               )
           [1] => Array
               (
                   [@attributes] => Array
                       (
                           [name] => Sandra
                       )
                   [symbol] => SA
                   [code] => S
               )
       )
)

以上就是本文的全部内容,希望对大家的学习有所帮助。更多教程请访问码农之家

标签:xml,解析,函数,json,字符串,Array,PHP
From: https://www.cnblogs.com/myhomepages/p/16614201.html

相关文章

  • PHP serialize()与unserialize()
    大多数时候,PHP开发人员需要在文件或数据库中存储一个复杂的数组。复杂的数组是那些具有多个单一数据类型或数组元素的数组。在本教程中,我们将向您展示如何使用 serialize......
  • PHP代码示例 - 创建、读取、增加、删除、修改 xml
    这篇文章我们将讨论如何使用php对xml进行CRUD(创建、读取、更新、删除)操作,CRUD操作通常是数据库的基本数据操作。这里,我们将创建一个简单的PHP应用程序,在XML而不是数据库上......
  • PHP 发送邮件
    在php网站开发中,发送电子邮件是一个非常普片的需求。比如网站注册功能,当用户注册完成后需要发送电子邮件给用户,提示用户注册成功或者发送验证链接,另外,用户修改账号密码也需......
  • php判断多维数组中是否含有某个值
    在php开发中,我们有时候需要检查PHP多维数组中是否存在某一值Value。在本教程中,我们将演示并描述了如何检查多维数组中是否存在某一值的几种方法。我们将使用以下2种方法来......
  • PHP 多文件上传功能实例讲解
    PHP文件上传功能是非常普片的需求,而在网站开发过程中,我们可以需要同时上传多个文件,这个时候就需要开发出php多文件上传的功能。在本教程中,我将向您展示如何使用PHP实现多个......
  • PHP数组输出为xml的两种常见方法
    很多时候,我们需要将数据以XML格式存储到数据库或文件中,以备后用。为了满足此需求,我们将需要将数据转换为XML并保存XML文件。在本教程中,我们将讨论如何使用PHP将数组转化为x......
  • PHP判断远程文件是否存在的四种方法
    PHPfile_exists()函数用于检查服务器上是否存在一个文件或目录。但是,如果要检查远程服务器上的文件是否存在,file_exists()函数将不可用。本文将介绍php中如何判断远程文......
  • Docke 搭建 apache2 + php8 + MySQL8 环境
    Docker安装执行Docker安装命令curl-fsSLhttps://get.docker.com/|sh启动Docker服务sudoservicedockerstart查看Docker是否正常工作sudo......
  • 先手的微弱优势——两道博弈论题的解析
    博弈论的题往往可以通过直接计算Sprague-Grundy函数来解决。本文将介绍两道较为相似的例题,在他们的设定下,大多数情况输赢仅由双方的优势程度所决定,而先手的优势则被限定在......
  • JS判断是手机访问还是电脑访问,并自动跳转 可在PHP中使用 (2014-12-02 14:41:26)
    方法一、在head内调用以下代码《uaredirect.js》该文件下载地址:http://siteapp.baidu.com/static/webappservice/uaredirect.js百度网盘下载地址:http://pan.baidu.com/......