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 相关文章推荐
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 PHP
文件上传类
Oct 09 PHP
谈谈PHP语法(4)
Oct 09 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
ThinkPHP之getField详解
Jun 20 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
php获取twitter最新消息的方法
Apr 14 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
Thinkphp+smarty+uploadify实现无刷新上传
Jul 30 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
PHP结合Mysql数据库实现留言板功能
Mar 04 PHP
PHP7中I/O模型内核剖析详解
Apr 14 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
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
Python如何获取文件指定行的内容
2020/05/27 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
Aosom西班牙:家具在线商店
2020/06/11 全球购物
安全生产责任书
2014/03/12 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers