PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】


Posted in PHP onSeptember 10, 2019

本文实例讲述了PHP读取XML文件的方法。分享给大家供大家参考,具体如下:

使用DOMDocument对象读取xml

创建一个DOMDocument对象

$doc = new DOMDocument();

载入xml文件

$doc->load("book.xml");

获取标签对象

$books = $doc->getElementsByTagName("book");

获取标签的子对象

$titles = $book->getElementsByTagName("title");

获取标签的值或属性

$title = $titles->item(0)->nodeValue;

实例1,获取图书列表

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book>
    <title>PHP和MySQL开发</title>
    <author>谭浩强</author>
  </book>
  <book>
    <titile>xml从入门到精通</titile>
    <author>郑智化</author>
  </book>
</bookstore>

load.php

<?php
header("Content-type:text/html;charset=utf8");
$doc = new DOMDocument();  //创建DOMDocument对象
$doc->load("book.xml");  //打开book.xml
$books = $doc->getElementsByTagName("book"); //获取book标签对象
foreach ($books as $book){  //遍历对象
  $titles = $book->getElementsByTagName("title");  //获取book标签下的title标签
  $title = $titles->item(0)->nodeValue;  //获取标签的值
  $authors = $book->getElementsByTagName("author");//获取book标签下的author标签
  $author = $authors->item(0)->nodeValue;  //获取标签的值
  $item["title"] = $title;
  $item["author"] = $author;
  $bookinfo[] = $item;
}
var_dump($bookinfo);

实例2,读取配置文件

config.xml

<?xml version="1.0" encoding="UTF-8"?>
<mysql>
  <host>127.0.0.1</host>
  <username>root</username>
  <password></password>
  <database>test</database>
</mysql>

config.php

<?php
header("Content-type:text/html;charset=utf8");
$doc = new DOMDocument();  //创建DOMDocument对象
$doc->load("config.xml");  //打开config.xml
$mysql = $doc->getElementsByTagName("mysql"); //获取mysql标签对象
$host = $mysql->item(0)->getElementsByTagName("host");
$config["host"] = $host->item(0)->nodeValue;
$username = $mysql->item(0)->getElementsByTagName("username");
$config["username"] = $username->item(0)->nodeValue;
$password = $mysql->item(0)->getElementsByTagName("password");
$config["password"] = $password->item(0)->nodeValue;
$database = $mysql->item(0)->getElementsByTagName("database");
$config["database"] = $database->item(0)->nodeValue;
var_dump($config);

使用simplexml方法读取xml

实例1,获取图书列表

load.php

<?php
header("Content-type:text/html;charset=utf8");
$books = simplexml_load_file("book.xml");
foreach($books as $book){
  $item["title"] = $book->title;
  $item["author"] = $book->author;
  $booklist[] = $item;
}
var_dump($booklist);

实例2,读取配置文件

config.php

<?php
header("Content-type:text/html;charset=utf8");
$mysql = simplexml_load_file("config.xml");
$config['host'] = $mysql->host;
$config['username'] = $mysql->username;
$config['password'] = $mysql->password;
$config['databse'] = $mysql->database;
var_dump($config);
PHP 相关文章推荐
php empty()与isset()区别的详细介绍
Jun 17 PHP
php 使用GD库为页面增加水印示例代码
Mar 24 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
php实现简单文件下载的方法
Jan 30 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
php实现微信支付之退款功能
May 30 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 03 PHP
php中pcntl_fork详解
Apr 01 PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 #PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 #PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 #PHP
PHP 模拟登陆功能实例详解
Sep 10 #PHP
Yii框架日志操作图文与实例详解
Sep 09 #PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 #PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 #PHP
You might like
劣质的PHP代码简化
2010/02/08 PHP
php实现字符串翻转的方法
2015/03/27 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python实现配置文件备份的方法
2015/07/30 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
取numpy数组的某几行某几列方法
2018/04/03 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
Python理解递归的方法总结
2019/01/28 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
大学生自我鉴定范文
2013/12/28 职场文书
加拿大探亲邀请信
2014/01/28 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
红色经典观后感
2015/06/18 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL