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 Http_Template_IT类库进行模板替换
Mar 19 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
php获取汉字首字母的函数
Nov 07 PHP
Yii中render和renderPartial的区别
Sep 03 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
Jul 02 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 PHP
php并发加锁问题分析与设计代码实例讲解
Feb 26 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中遍历二维数组的几种方法详解
2013/06/08 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
浅谈php调用python文件
2019/03/29 PHP
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
JS中的多态实例详解
2017/10/15 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
详解package.json版本号规则
2019/08/01 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
Python中一些深不见底的“坑”
2019/06/12 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
介绍一下EJB的体系结构
2012/08/01 面试题
Servlet如何得到服务器的信息
2015/12/22 面试题
求职简历中个人的自我评价
2013/12/01 职场文书
木工主管岗位职责
2013/12/08 职场文书
魅力教师事迹材料
2014/01/10 职场文书
装饰活动策划方案
2014/02/11 职场文书
服务之星事迹材料
2014/05/03 职场文书
应用心理学专业求职信
2014/08/04 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
自荐信格式模板
2015/03/27 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
我的生日感言
2015/08/03 职场文书