php中simplexml_load_file函数用法实例


Posted in PHP onNovember 12, 2014

本文实例讲述了php中simplexml_load_file函数用法。分享给大家供大家参考。具体用法分析如下:

在php中simplexml_load_file() 函数把 XML 文档载入对象中之后我们就可以利用由此函数返回的对象进行相关的操作了,下面我们看几个测试实例.

例子,XML文件代码如下:

<?xml version="1.0" encoding="ISO-8859-1"?>  

<note>

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

</note>

PHP 代码如下:
<?php  

if (file_exists('test.xml'))  

{  

  $xml = simplexml_load_file('test.xml');  

  var_dump($xml);  

}  

else  

{  

  exit('Error.');  

}  

?>

 
运行输出结果如下: 
object(SimpleXMLElement)#1 (4) {

  ["to"]=>

  string(6) "George"

  ["from"]=>

  string(4) "John"

  ["heading"]=>

  string(8) "Reminder"

  ["body"]=>

  string(25) "Don't forget the meeting!"

}

假如有一个“iciba.xml”文件,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>  

<dict num="219" id="219" name="219">  

 <key>天空</key>  

 <pos></pos>  

 <acceptation>Array;Array;</acceptation>  

 <sent>  

  <orig>The church tower stood against the sky like a finger pointing towards heaven.</orig>  

  <trans>教堂的尖塔在天空的映衬下宛如指向天空的手指。</trans>  

 </sent>  

 <sent>  

  <orig>A balloon floated across the sky.</orig>  

  <trans>气球飘过天空。</trans>  

 </sent>  

 <sent>  

  <orig>A bolt of lightning lit up the sky.</orig>  

  <trans>(一道)闪电照亮了天空。</trans>  

 </sent>  

 <sent>  

  <orig>A bright moving object appeared in the sky at sunset.</orig>  

  <trans>日落西山时,天空出现了一个移动的发亮物体。</trans>  

 </sent>  

 <sent>  

  <orig>A bright rainbow arched above.</orig>  

  <trans>一弯明亮的彩虹悬挂在天空。</trans>  

 </sent>  

</dict>

在PHP语言中我们可以用以下方法取得我们想要的值: 
<?php  

$xmldata = simplexml_load_file("iciba.xml");  

  

header("Content-Type: text/html; charset=UTF-8");  

print_r($xmldata); //第一部分  

  

$listcount = count($xmldata->sent);  

  

for($i=0;$i<$listcount;$i++){ //第二部分  

 $dictlist = $xmldata->sent[$i];  

 echo "<br />例句:".$dictlist->orig;  

 echo "<br />翻译:".$dictlist->trans;  

}  

?>

“第一部分”将输出: 

SimpleXMLElement Object

(

    [@attributes] => Array

        (

            [num] => 219

            [id] => 219

            [name] => 219

        )
    [key] => 天空

    [pos] => SimpleXMLElement Object

        (

        )
    [acceptation] => Array;Array;

    [sent] => Array

        (

            [0] => SimpleXMLElement Object

                (

                    [orig] => The church tower stood against the sky like a finger pointing towards heaven.

                    [trans] => 教堂的尖塔在天空的映衬下宛如指向天空的手指。

                )
            [1] => SimpleXMLElement Object

                (

                    [orig] => A balloon floated across the sky.

                    [trans] => 气球飘过天空。

                )
            [2] => SimpleXMLElement Object

                (

                    [orig] => A bolt of lightning lit up the sky.

                    [trans] => (一道)闪电照亮了天空。

                )
            [3] => SimpleXMLElement Object

                (

                    [orig] => A bright moving object appeared in the sky at sunset.

                    [trans] => 日落西山时,天空出现了一个移动的发亮物体。

                )
            [4] => SimpleXMLElement Object

                (

                    [orig] => A bright rainbow arched above.

                    [trans] => 一弯明亮的彩虹悬挂在天空。

                )
        )
)

“第二部分”将输出: 

例句:The church tower stood against the sky like a finger pointing towards heaven.

翻译:教堂的尖塔在天空的映衬下宛如指向天空的手指。

例句:A balloon floated across the sky.

翻译:气球飘过天空。

例句:A bolt of lightning lit up the sky.

翻译:(一道)闪电照亮了天空。

例句:A bright moving object appeared in the sky at sunset.

翻译:日落西山时,天空出现了一个移动的发亮物体。

例句:A bright rainbow arched above.

翻译:一弯明亮的彩虹悬挂在天空。

例子,更深入的一个遍历输出生成表格,代码如下:

eader("content-type:text/html; charset=utf-8"); //设置编码  

$xml = simplexml_load_file('a.xml'); //载入xml文件 $lists和xml文件的根节点是一样的  

echo $xml->company."<br>";  

echo $xml->town."<br>id:";  

echo $xml->town['id']."<br>parent:";  

echo $xml->town['parent']."<br>";  

  

echo "<br>循环读取:<br>";  

foreach($xml->user as $users){ //有多个user,取得的是数组,循环输出  

    echo "-------------------<br>";  

    echo "姓名:".$users->name."<br>";  

    echo "编号:".$users->age."<br>";  

    echo "性别:".$users->age['sex']."<br>";  

    echo "序号:".$users->height."<br>";  

}

  

echo "<br>循环读取:<br>";  

foreach($xml->town as $towns){ //有多个user,取得的是数组,循环输出  

    echo "-------------------<br>";  

    echo "id:".$towns['id']."<br>";  

    echo "归属:".$towns['parent']."<br>";  

    echo "地区:".$towns."<br>";  

}

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP常用代码大全(新手入门必备)
Jun 29 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
linux下编译安装memcached服务
Aug 03 PHP
php异步多线程swoole用法实例
Nov 14 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
深入浅析yii2-gii自定义模板的方法
Apr 26 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
php实现的ping端口函数实例
Nov 12 #PHP
PHP实现下载断点续传的方法
Nov 12 #PHP
php格式化日期实例分析
Nov 12 #PHP
PHP中的Streams详细介绍
Nov 12 #PHP
PHP产生不重复随机数的5个方法总结
Nov 12 #PHP
php一行代码获取文件后缀名实例分析
Nov 12 #PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 #PHP
You might like
php 什么是PEAR?(第三篇)
2009/03/19 PHP
php引用传值实例详解学习
2013/11/06 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
vue项目关闭eslint校验
2018/03/21 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
python3连接MySQL数据库实例详解
2018/05/24 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
解决Python使用列表副本的问题
2019/12/19 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
建筑设计师岗位职责
2013/11/18 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
工程项目经理任命书
2014/06/05 职场文书
普通话宣传标语
2014/06/26 职场文书
上班迟到检讨书
2015/05/06 职场文书
中秋节感想
2015/08/10 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL